Articles of image processing

在JavaScript中合并两个图像

我试图将来自两个不同URL的两个图像合并为一个如下所示: 香草JS或任何节点库可以使用。 我没有在代码中的图像的经验,所以我不知道我在找什么,但它将不胜感激,如果提供了一个例子。 粗略的伪代码可能看起来像这样: img1 = getImage("url") img2 = getImage("url") newImg = mask(img1, img2, args) return newImg //can be a Buffer, local path, or URL 编辑 :我正在寻找这个在Node中运行,因为没有与DOM交互。

JIMP在nodejs中无效的文件签名

我使用JIMP将我的图像转换为灰度,并降低其质量。但是对于2%的情况下,它正在损坏我的形象,并在控制台中抛出一个错误 – “错误:无效的文件签名在Parser._parseSignature(C:\ Users \ Akshay \ Desktop \ darwin \ node_modules \ pngjs \ lib \ parser.js:50:18)“如果问题代码如下: var ext=path.extname(dest); if(ext!='.jpg'){ dest=replaceExt(dest, '.jpg'); } console.log(path.extname(dest)); var file = fs.createWriteStream(dest); ////console.log(url) if(url.indexOf('https')!=-1){ //console.log("https") var request = https.get(url, function(response) { response.pipe(file); file.on('finish', function() { Jimp.read(dest).then(function (lennaa) { lennaa.resize(256, 256) // resize .quality(90) // set JPEG quality .greyscale() […]

使用imagemin压缩图像并存储在mongodb中

我试图检索已发布到我们的nodejs服务器的图像,压缩它,然后将其存储在mongodb中。 我正在使用imagemin它正在工作,即它可以采取传入的图像,压缩它,并将其存储到一个静态目标文件夹。 但是,我想要输出imagemin进程并将该图像存储在mongo中而不是目标文件夹中! 这是逻辑坐标中的中间件; app.use(multer({ dest : './static/uploads/', limits : {… rename : function(fieldname, filename) {…. onFileUploadComplete : function(file) { //var imagemin = new Imagemin().src(file.path).dest('./static/uploads/').use(compressionType); var imagemin = new Imagemin().src(file.path).use(compressionType); imagemin.run(function(err, files) { if (err) { return next(err); } console.log('Files optimized successfully!'); }); // DO SOME LOGIC HERE TO STORE IMAGE(S) TO MONGO } }; […]

比较node.js中的图像(使用例如opencv)

我想要做的是使用node.js获取图像差异。 最终,我想有一个方法,期望例如两个文件path或图像数据输出减法。 不知何故,像imagemagick中的比较function。 就像是: var comparison_result = compareModule.compare('./image1.png', './image2.png'); 此外,我想获得标记差异的结果图像中的斑点位置。 喜欢这个: comparison_result.forEach(function(difference) { console.log("A difference occurred at " + difference.x + "|" + difference.y); }); 我安装了node-opencv ,但是我找不到将基本opencv c ++函数映射到node.js的文档。 我想使用的function是cvSub 。 我想避免使用js-imagediff,因为它与canvas一起工作,对“cairo”有依赖性,我不确定是否可以访问这些点,因为在文档中它似乎只是将差异作为图像返回。

node.js是图像代理和操作任务的理想select吗?

我有一个任务,可以从网上的多个来源检索每个图像。 我使用节点作为代理服务,以便在收到图像请求时,节点内部点击可用于图像的3-4个源,并返回第一个响应的源。 我也想支持像修剪,resize,旋转等image processing任务。为此,我使用imagemagick。 但我明白,image processing是一项繁重的任务将阻止线程。 即使我把CDN放在节点服务器前面,它仍然会在很多负载下崩溃。 这样的任务最好的安排是什么? 在节点中是否有可能的解决方法? 我应该把所有的代码切换到其他技术吗? 还是应该把代理部分放在其他地方的节点和操作部分?

graphicsMagick与节点 – 创build一个裁剪的缩略图,而不会降低图像质量

我有一些代码使用Graphics Magick来裁剪图像。 然而,由此产生的图像保真度降低。 我想知道是否有人知道避免质量下降的方法? gm(imagePath) .thumbnail(25, 25 + '^') .gravity('Center') .extent(25, 25) .write(imagePath, function (error) { if (error) console.log('Error – ', error); callback() });

在Nodejs中使用gmresize和构图两个或多个图像

给定两个图像,比如img(大小为1024×768)的文件夹(img1.png和img2.png),我需要调整img2的大小(比如300×300),把img1放在x和y(比如100,200)的img1。 最终结果应该是1024×768大小的图像。 使用gm( https://github.com/aheckmann/gm ),试过这个: gm('./img/img1.png') .composite('./img/img2.png') .geometry('300×300+100+200') .write('resultGM.png', (err) => { if (err) console.log(err); }); 预计(由于整个操作链)产生300×300的图像。 然后我试了这个: gm('./img/img1.png') .composite( gm('./img/img2.png') .geometry('300×300+100+200') ) .write('resultGM.png', (err) => { if (err) console.log(err); }); 希望复合函数接受缓冲区,但没有机会,它只接受文件path,并给出错误。 花了2-3个小时,读了几个post(只能在这里find一些讨论: 如何做复合gm node.js?在这里: 结合两个gm对象,同时调整其中的一个在graphicsMagick为NodeJS (这一个不回答这个问题实际上),我找不到任何解决scheme在内存中使用stream或缓冲区执行此操作。写入临时文件时可以执行此操作。是否有任何人可以在内存中find解决scheme调整和合并图像?

有没有办法以编程方式覆盖模板图像上的文本,并创build一个输出图像文件(PNG或JPEG)?

我正在创build一个交互式程序,它接受用户input,查询后端系统并将输出返回给用户。 我想这个输出显示为一个图像。 我有一个占位符的模板图像。 我想用后台系统中的实际用户信息文本replace这些占位符,并以图像(PNG,JPG)的forms呈现给用户。 有没有这样的API? 即使ac#或NodeJS代码在这一点上也足够了 提前致谢

如何使用JavaScript / Node.js创build图像?

我怎样才能创build一个像个人资料卡,我将修改一些文字和颜色,然后使其成为一个形象? 我不知道从哪里开始。

我怎样才能在NodeJS中线程化image processing?

我在NodeJS上编写image processingWeb服务,在基本上我需要弄清楚如何使实际的image processing线程化。 当我通过Apache AB进行testing时,NodeJS只使用了一个内核,并且在这里做错了。 我如何重新devise这个简单的应用程序,以利用我的服务器CPU上的多个核心。 我放大了所有的input过滤,并简化了image processingfunction,让您了解应用程序结构,而不是长码位。 在app.js中 app.get('/generate/:q', function(req, res){ var textString = req.params.q; res.setHeader("Content-Type", "image/png"); res.end(generator.s()); }); 在generate.js中 var Canvas = require('canvas') , Font = Canvas.Font , fs = require('fs') , path = require("path") , plate = new Canvas.Image; //To keep plate in RAM between requests. fs.readFile(__dirname + '/plates/dhw132.png', function(err, squid){ if […]