Jimp - 从函数返回 URI,但图像未在 <img> 的 src 中呈现
Jimp - URIs are returned from the function but the images are not rendered in the <img>'s src
我在 Svelte 中编码并使用 jimp 在显示之前模糊图像。但是,我成功地模糊和 return 了图像的 URI(已记录并在控制台中显示了 URI),但是图像没有在我调用 <img> src
中的函数的地方渲染。
具体来说:
我有一个 processImage 函数:
const processImage = async imgMeta => {
const buf = Buffer.from(imgMeta.replace(/^data:image\/\w+;base64,/, ""), 'base64');
Jimp.read(buf, (err, image) => {
if (err) throw err;
else {
image.blur(20)
.getBase64(Jimp.AUTO, function (err, newImageURI) {
return newImageURI;
})}})
而且,我在 :
中调用它
<img src={processedImage} alt="preview" />
但是图像没有渲染。这是赔率,正如我所料它应该有效。
回调函数返回的值出错。 newImageURI
不会返回。
等待同步和 Jimp 的 getBase64Async 是有用的解决方案:
newImageURI = await image.blur(20).getBase64Async(Jimp.AUTO);
return newImageURI;
并且body中的函数调用保持不变:
{#await processImage(item.files[0].preview)}
<p>...waiting</p>
{:then processedImage}
<img src={processedImage} alt="preview" />
{/await}
我知道了 运行。
我在 Svelte 中编码并使用 jimp 在显示之前模糊图像。但是,我成功地模糊和 return 了图像的 URI(已记录并在控制台中显示了 URI),但是图像没有在我调用 <img> src
中的函数的地方渲染。
具体来说:
我有一个 processImage 函数:
const processImage = async imgMeta => {
const buf = Buffer.from(imgMeta.replace(/^data:image\/\w+;base64,/, ""), 'base64');
Jimp.read(buf, (err, image) => {
if (err) throw err;
else {
image.blur(20)
.getBase64(Jimp.AUTO, function (err, newImageURI) {
return newImageURI;
})}})
而且,我在 :
中调用它<img src={processedImage} alt="preview" />
但是图像没有渲染。这是赔率,正如我所料它应该有效。
回调函数返回的值出错。 newImageURI
不会返回。
等待同步和 Jimp 的 getBase64Async 是有用的解决方案:
newImageURI = await image.blur(20).getBase64Async(Jimp.AUTO);
return newImageURI;
并且body中的函数调用保持不变:
{#await processImage(item.files[0].preview)}
<p>...waiting</p>
{:then processedImage}
<img src={processedImage} alt="preview" />
{/await}
我知道了 运行。