Tag: imagemagick

如何在节点imagemagick模块转换函数中传递多个参数

我使用节点imagemagick模块的转换function当我通过terminal使用此命令,那么它工作正常 convert /home/manish/Downloads/new_images/slim_fit_double_breasted_coat_base.png /home/manish/Desktop/Medium-Vichy-9274-Fabric-Gauloise-058.jpg \( -clone 0 -auto-level \) \( -clone 1 -clone 0 -alpha set -virtual-pixel transparent -compose displace -set option:compose:args -5x-5 -composite \) fabric2.png 但是当我在节点模块中传递相同的命令时,它不会给出预期的结果。 这是我的代码 var im = require('imagemagick'); im.convert(['/home/manish/Downloads/new_images/slim_fit_double_breasted_coat_base.png','/home/manish/Desktop/green-flower-lavender-eye-pillow-fabric.jpg', '-clone', '0', '-auto-level','-clone','1','-clone','0','-alpha' , 'set' ,'-virtual-pixel','transparent','-compose','displace','-set','option:compose:args -5x-5 ','-composite','fabricted111.png'], function (err, stdout) { if (err) throw err; console.log('stdout:', stdout); }); 它在这个论点是给错误的 '-set','option:compose:args -5x-5 […]

在节点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)最简单的方法是什么?

AWS Lambda函数 – 将PDF转换为图像

我正在开发应用程序,用户可以上传一些PDF格式的图纸。 上传的文件存储在S3上。 上传后,文件必须转换为图像。 为此,我创build了lambda函数,它将文件从S3下载到lambda执行环境中的/ tmp文件夹,然后从imagemagick调用“convert”命令。 convert sourceFile.pdf targetFile.png Lambda运行时环境是nodejs 4.3。 内存设置为128MB,超时30秒。 现在的问题是,有些文件转换成功,而其他人失败,出现以下错误: {[错误:命令失败:/ bin / sh -c转换/tmp/sourceFile.pdf /tmp/targetFile.png转换: %s' (%d) "gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" "-sOutputFile=/tmp/magick-QRH6nVLV–0000001" "-f/tmp/magick-B610L5uo" "-f/tmp/magick-tIe1MjeR" @ error/utility.c/SystemCommand/1890. convert: Postscript delegate failed %s' (%d) "gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 […]

ImageMagick:string中的表情符号被写为问号

我正在使用ImageMagick(在NodeJS中)在svg图像上写入一个string。 如果string中有一个标准的unicode表情符号,则呈现为“?”。 “这个string里有一个表情符号” 获取呈现为: “这个string里有一个”表情符号“ 有没有办法让ImageMagick呈现string与实际的表情符号?

ImageMagick,Linuxterminal

我需要terminal的ImageMagick一些帮助。 我需要用一个命令对input图像的一半进行镜像效果。 我可以用4个命令来做到这一点(剪成2张图片,将第2张图片复制到第1张,对第1张图片进行镜像,然后将2张图片保存到一张图片中),但是对于我的服务器来说太困难了,有时候很多人试图使用这个function。 convert images/kek.png -crop 50%x100% images/out.jpg cp images/out-0.jpg images/out-1.jpg convert images/out-0.jpg -flop images/out-0.jpg convert +append images/out-1.jpg images/out-0.jpg images/out.jpg

如何使用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 […]

尝试在Azure上使用imagemagick会导致“系统找不到文件”错误

我在Azure上运行的nodej上使用https://github.com/rsms/node-imagemagick 。 但是,当我试图获得有关文件的信息,例如 var im = require('imagemagick'); im.readMetadata('kittens.jpg', function(err, metadata){ if (err) throw err; console.log('Shot at '+metadata.exif.dateTimeOriginal); }) 我得到错误 “错误:命令失败:CreateProcessW:系统找不到指定的文件。” 看来,系统无法findimagemagick的path,但我该如何解决这个问题?

用nodeJs imageMagick调整图片大小

我想调整一些图片,然后用快递发送给nodeJs中的用户 im = require("imagemagick") app.get('/image/:dossier/:id/:taille', function (req, res) { var image = __dirname + '/public/img/bibliotheque/'+req.params.dossier+'/'+req.params.id+'.jpg'; im.resize({ srcPath : image, width : req.params.taille }, function(err, stdout, stderr) { if (err){ log.error(err); } else { res.contentType("image/jpeg"); res.end(stdout); } }); }); 但是这是回报: events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit […]

如何在node.js中使用imagemagick将图像types转换为“jpg”

我在我的node.js应用程序中使用imagemagick。 我已经调整了图像的大小,如下所示: im.resize({ format: 'jpg', srcPath: imagePath, dstPath: thumbPath, width: 220, }, function(err, stdout, stderr){ //some code } }); 我想我的代码将传入的图像转换为jpg 。 我怎样才能做到这一点?