Tag: graphicsmagick

在节点JS中使用gm模块时,使用NodeJS产生ENOENT错误

我正在使用Linux操作系统在AWS EC2实例上使用gm节点模块。 我的目标是从S3 bucket中裁剪由url提供的图像。我正在对来自S3存储桶的图像url进行http请求以获取缓冲区并将缓冲区值传递给gm模块。 我的代码如下: gm(buffer).crop(width, height, x, y).toBuffer(imageExtension, function (err, buffer) { if (err) { //error Handling } else { //Some Logic } }); 当我将缓冲区传递给gm裁剪模块时,我得到了产卵ENOENT错误。 events.js:85 throw err; // Unhandled 'error' event ^ Error: spawn convert ENOENT at exports._errnoException (util.js:746:11) at Process.ChildProcess._handle.onexit (child_process.js:1053:32) at child_process.js:1144:20 at process._tickDomainCallback (node.js:381:11) 我参考了堆栈溢出的以下链接以供参考,但无法修复错误。 错误:在节点中使用GM时产生ENOENT Node.js:错误:使用GM模块时产生ENOENT 用NodeJS产生ENOENT错误 nodejs – […]

使用graphicsmagick获取图像像素

目前我使用pngjs ,就像在这个答案中所描述的,但我想看看如何使用GraphicsMagick获取图像的像素。 我使用gm作为GraphicsMagick的包装。 我找不到任何信息如何获得图像像素。 我想有这样的东西: myImg.getPixel(x, y, function (err, pixel) { // pixel: { r: …, g: …, b: …, a: … } }); 我想知道如果要toBuffer会帮助: gm('img.jpg') .resize(100, 100) .toBuffer('PNG',function (err, buffer) { if (err) return handle(err); console.log('done!'); }) 有缓冲区,也许我能够以某种方式计算像素的颜色… 使用graphicsmagick获得给定坐标(x,y)的像素信息(r,g,b,a)最简单的方法是什么?

如何使用node.js和gm检查损坏的jpg图像?

我想检查损坏的JPEG图像,到目前为止,直接在命令行我可以使用identify image.jpg输出: image.jpg JPEG 1920×1200 1920×1200+0+0 8-bit sRGB 65.5KB 0.000u 0:00.009 identify: Premature end of JPEG file `image.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. identify: Corrupt JPEG data: premature end of data segment `image.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. 或gm identify image.jpg输出: image.jpg JPEG 1920×1200+0+0 DirectClass 8-bit 64.0Ki 0.000u 0:01 gm identify: Corrupt JPEG data: premature end of data segment (image.jpg). gm […]

GraphicsMagick用于Node.js(GM模块)的性能

使用GM npm模块,我发现GraphicsMagick对Node.js的性能令人惊讶。 我有一个简单的16像素X 16像素icon16.png(320字节)。 我简单地把这个PN​​G的缓冲区输出到一个使用GM的新缓冲区(换句话说,我只是调用通用图像而不经过处理就可以find性能问题)。 var timeStart = parseInt(Date.now()); var newBuffer = gm(icon16buffer, 'icon16.png') //.resize(8, 8) .toBuffer(function (err, buffer) { if (err) { next(); } else { console.log(parseInt(Date.now()) – timeStart); send(200, buffer); } }); }; 这需要175毫秒(即console.log输出是175)。 为什么这么久? 每次都要从磁盘加载C ++ GraphicsMagick库吗? 注意:我在Joyent上使用SmartOS。

在Travis生成机器上的graphicsmagick

我们的unit testing要求我们调用gm(graphicsmagick)库,并且包由travis构build。 我想知道是否有更简单的方法来安装graphicsmagick时,包开始构build: 我的.travis.yml如下所示: language: node_js node_js: – '0.11' before_install: – npm install -g grunt-cli install: – npm install – grunt precheck after_success: – npm test – sh ./scripts/package.sh 在before_install中添加一个好的解决scheme? 如果是,那么安装这个lib最简单的方法是什么? 谢谢

gm为node.js:只有在图像大于目标大小时才resize

我做了一个resize的图像适合网站,这意味着大文件缩小到1000px。 gm(readStream, fileObj.name()).resize('1000').stream().pipe(writeStream); 但是,我怎样才能避免这些小图像变大呢?

使用append()在graphicsmagick中拼接图像

我有大量的图像存储在一个单独的服务器上,需要在单个页面上显示为某种types的马赛克,其中可以dynamic显示或隐藏各个元素。 应该获取这些图像,resize,然后作为精灵缝合在一起,并用作div的背景图像。 在这一点上获取和resize是一个非问题,因为最大的障碍是理解附加方法,或者更确切地说,如何将图像添加到集合中,以便使用所述方法。 根据文件: gm("img.png").append(ltr) 应该: Append a set of images 我如何获得多个图像到一个“集”?

节点gm – 使用裁剪和resize导致错误

下面的代码抛出一个错误。 错误:命令失败:gm convert:几何体不包含图像(无法裁剪图像)。 var gm = require('gm'); gm('/origin.jpg') .resize(600) .write('/beforeCrop', function (err) { // beforeCrop is 600 * 450 gm('/beforeCrop') .crop(70, 70, 100, 100) .resize(50, 50) .write('/result', function (err) { if (err) throw err; }); }); 看起来gm无法解决beforeCrop的大小。

合并两个图像与nodejs和graphicsmagick

我被要求从一个给定的图像(可以是任何尺寸)创build一个450像素,225像素的图像,并符合以下要求。 如果图像是450×225,没有porblem只是保存它。 如果图像较大,则只需让用户能够裁剪图像。 我能够做到以上两个,但我卡住的地方是当图像小于450×225 。 当尺寸较小时,我想创build一个450×225的图像,并将给定的图像粘贴到450×225的中心。 我正在使用node.js,并使用GraphicsMagicks库来实现node.js. 任何帮助是极大的赞赏!

nodejs gm模块脚本在多个单个图像中分割一个大的多页tiff文件

当从命令行执行时,直接调用GraphicsMagick,下面的指令正确地在多个单个图像文件中正确分割一个大的tiff多页图像。 现在我需要find正确的翻译,使其与Node.js gm模块( http://aheckmann.github.com/gm/ )一起工作: gm convert +adjoin -trim input.pdf PNG8:output%03d.png 任何帮助将非常感激。