2017-08-30 48 views
1

我有一个将FB图像url作为参数的服务,检查它是一个返回图像的有效url,然后在所有检查都通过时返回url。我想添加一个步骤来调整图像,如果这些参数也传入,然后像我以前那样通过url返回调整大小的图像。节点在不保存图像的情况下使用url调整图像的大小

我对图像处理的经验至少可以说,但我迄今为止的理解是使用诸如sharp这样的库,调整其大小,将新大小的图像保存在某处,然后将新的url返回到图像位置。

这似乎是最合乎逻辑的方法。但是,我想知道如果我不想在任何地方放置这些调整大小的图像,可能的解决方案是什么。有没有另外一种方式,或者我之前的理解走上了正轨?

来自Facebook的示例url将如下所示:https://scontent.xx.fbcdn.net/v/t1.0-9/16473924_10154471006092746_6242863207915608429_n.jpg?oh=4d7fb8fb162c0ff036810ee2969703f0&oe=5A25EE1C

+0

调整图像大小,丢弃调整大小的图像,然后返回一个URL来获取图像是没有意义的。当URL被请求时,你只需要再次创建图像,以便你可以返回它。所以,我完全不清楚你真的在寻求什么帮助。 – jfriend00

+0

@ jfriend00感谢您的评论。我认为我公开我的图像处理经验已经足够,并且我概述了我的逻辑解决方案,但是考虑到我的图像处理经验,我想知道是否有某些我可能不知道的事情。这就是说,要完全清楚,答案可以是a)是的,你以前的理解是正确的,因为没有别的选择,或者b)尝试这种选择。 SO是一个很好的交流和学习的地方,这正是我想要做的。如果你觉得这是一个愚蠢的问题,道歉。 – jmcgui05

+0

对不起,但我仍然不明白你在问什么。如果没有人来帮忙,那可能是因为他们不明白问题是什么。我希望你能编辑这个问题,使它更清楚你要求的帮助。 – jfriend00

回答

2

基于问题标题:

节点调整网址为图像不保存图像

我认为你正在试图操纵根据您的“服务”的请求的图像,然后将其发回后处理,而不必存储它并使用磁盘空间...

[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); 
相关问题