node.js - Node 使用 url 调整图像大小而不保存图像

标签 node.js image image-resizing

我有一个服务,它接受 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/

相关文章:

node.js - 保持 super 测试直到 API 初始化

mysql - node.js中插入查询中的变量

c# - 将两个图像合并为一个新图像

c# - 'Emgu.CV.CvInvoke' 的类型初始值设定项抛出异常

html - CSS 图像百分比表现异常

javascript - 如何在nodejs中推迟解决任务

node.js - 在启动快速服务器之前等待几个数据库连接?

javascript - 获取图像信息的最佳实践

javascript - 建议的背景网页正确图片尺寸

swift - 如何在 OS X 上的 Swift 中调整大小、裁剪和导出 AVAsset?