我有一个服务,它接受 FB 图像 url 作为参数,检查它是否是返回图像的有效 url,然后在所有检查都通过时返回该 url。如果这些参数也被传入,我想添加一个步骤来调整图像大小,然后像之前一样通过 url 返回调整大小的图像。
至少可以说,我在图像处理方面的经验很少,但到目前为止我的理解是使用 Sharp 等库,调整其大小,将新大小的图像保存在某处,然后将新的 url 返回到图像位置。
这似乎是最合乎逻辑的方法。但是,我想知道如果我不想在任何地方托管这些调整大小的图像,可能的解决方案是什么。还有其他方法吗,或者我之前的理解是否符合要走的路?
来自 Facebook 的示例网址如下所示:https://scontent.xx.fbcdn.net/v/t1.0-9/16473924_10154471006092746_6242863207915608429_n.jpg?oh=4d7fb8fb162c0ff036810ee2969703f 0&oe=5A25EE1C
.
最佳答案
基于问题标题:
Node resize image with url without saving image
我认为您正在尝试根据对“服务”的请求来操作图像,然后将其发送回进行后处理,而无需存储它并使用磁盘空间...
[JIMP
] 获取、调整大小并返回图像而不保存到磁盘:
此示例请求服务器根“/”,它会获取图像,调整其大小并将其作为响应发送回来,而无需将其存储在磁盘中。
const imgURL = "https://ichef.bbci.co.uk/news/660/cpsprodpb/37B5/production/_89716241_thinkstockphotos-523060154.jpg";
const express = require('express'); const app = express()
var Jimp = require("jimp")
app.get('/',function(req, res){
Jimp.read(imgURL, function(err,img){
if (err) throw err;
img.resize(32, 32).getBase64( Jimp.AUTO , function(e,img64){
if(e)throw e
res.send('<img src="'+img64+'">')
});
});
});
app.listen(3000);
关于node.js - Node 使用 url 调整图像大小而不保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45965377/