Tag: imagemagick

运行ImageMagick的NodeJ转换来自目录的所有图像

这是我最近遇到的node.js的基本imagemagick设置。 我明白,我问的问题是非常新手,但我是新的节点js和imagemagick,我想尝试使其dynamic。 当前脚本bellow裁剪一个特定的文件,是否有办法使它转换到目录/before所有文件,然后输出到目录/after ? 另外,我想对目录中的所有图像执行的操作是在每个图像上应用水印(代码中的裁剪操作仅来自示例)。 var http = require("http"); var im = require("imagemagick"); var args = [ "image.png", "-crop", "120×80+30+15", "output.png" ]; var server = http.createServer(function(req, res) { im.convert(args, function(err) { if(err) { throw err; } res.end("Image crop complete"); }); }).listen(8080);

GraphicsMagick无法处理Unicode文件名

我发现GraphicsMagick无法处理我的中文文件。 我在ImageMagick上做了同样的testing,但IM按预期工作。 我认为这可能是一个错误,所以我在这里提交了一个错误报告: https : //sourceforge.net/p/graphicsmagick/bugs/384/ 无论如何,这是如何重现我的情况: 平台:Win10 版本:GraphicsMagick 1.3.20 代码: gm -identify 獅藝學會.jpg 这是从命令提示符返回的文本: >gm -identify 獅藝學會.jpg gm identify: Unable to open file (????.jpg) [Invalid argument]. gm identify: Request did not return an image. 使用IM工作: identify 獅藝學會.jpg ç?.è-?å-,æoƒ.jpg JPEG 3264×2448 3264×2448+0+0 8-bit sRGB 2.691MB 0.016u 0:00.004 虽然返回的文本是混乱的,但是将文件转换为.png仍然保持相同的文件名,除了不同的扩展名。 发生了什么 我发现这个问题通过使用gm node.js库批处理我的图像,调用的来源是从UTF-8网页,所以我假设文件名是作为Unicode编码传递 。 我发现没有任何与此问题有关的文档,虽然文档指出有一个-encoding选项,它不能在Windows上作为参数发送,因为它不能识别它,我无法在Google上find相关的解决scheme。 请帮忙,有没有简单的方法解决这个问题,同时保持确切的文件名?

如何解决这个错误与node.js和node-imagemagick:错误:命令失败:execvp():权限被拒绝?

我得到这个错误: Error: Command failed: execvp(): Permission denied 当我做一个简单的node-imagemagick脚本时: im = require('imagemagick'); im.identify.path = '/tmp/node_thumbs/'; im.identify('cool.jpg',function(err,features){ if(err) throw err; console.log(features); }); 任何想法可能会导致这一点?

node.js到imagemagick命令中断

我打电话通过node.js imagemagick脚本和命令是打破,但我不明白为什么。 正是我想要做的一个简单的例子: var spawn = require('child_process').spawn, ls = spawn('convert', ['-size', '168×45', 'xc:transparent', '-draw', '"image over 0,0 0,0 \'/path/to/img1.png\'"', '/path/to/out.png']); ls.stderr.on('data', function (data) { console.log('stderr: ' + data); }); 如果我运行这个确切的命令(唯一改变的是path,因为它们是绝对的),我得到,在stderr上: "convert: non-conforming drawing primitive definition `image over 0,0 0,0 '/path/to/img1.png'' @ error/draw.c/DrawImage/3145." 根据一些论坛,这通常意味着即时通讯无法打开图像,因为有一个无效的path,等等…现在奇怪的是,如果我改变convert为echo和前置convert我得到以下命令: convert -size 168×45 xc:transparent -draw "image over 0,0 0,0 '/path/to/img1.png'" /path/to/out.png 当从bash直接运行时,它是完美的。 […]

使用Nodejs和Imagemagick调整图像大小

使用nodejs和imagemagick可以重新调整图像大小,并将其发送到浏览器。 var http = require('http'), spawn = require('child_process').spawn; http.createServer(function(req, res) { var image = 'test.jpg'; var convert = spawn('convert', [image, '-resize', '100×100', '-']); convert.stdout.pipe(res); convert.stderr.pipe(process.stderr); }).listen(8080); testing图像是从文件系统中读取的,我想改变,以便testing图像是一个二进制string。 var image = 'some long binray string representing an image…….'; 我的计划是在Mongodb中存储二进制string并dynamic读取它们。

Node.js在Windows 7上看不到ImageMagick

我安装了ImageMagick(ImageMagick-6.9.2-3-Q16-x64-static.exe),并在我的js文件中添加以下内容: var easyimg = require('easyimage'); 但是当我启动我的node.js应用程序时,我得到这个错误: ImageMagick未findEasyImage需要ImageMagick工作。 从http://www.imagemagick.org/script/binary-releases.php安装它。

jquery-file-upload-middleware with express.js:如何移动文件和添加水印?

我设法用express.js 4.0设置https://github.com/aguidrevitch/jquery-file-upload-middleware ,但是在configuration时遇到困难。 这是我的上传脚本: var upload = require('jquery-file-upload-middleware'); upload.configure({ imageVersions: { thumbs: { width: 80, height: 80 }, prev: { width: 1280, height: 1024 } } }); app.use('/admin/upload', function (req, res, next) { // imageVersions are taken from upload.configure() upload.fileHandler({ uploadDir: function () { return __dirname + '/public/uploads/' + req.session.eventID; } })(req, res, next); }); […]

如何使用低分辨率的裁剪照片作为指导重新裁剪原始的更高分辨率的副本?

我有一张正方形的,低分辨率的照片,已经被用户从高分辨率,非正方形的原稿中裁剪出来。 低分辨率的照片然后被调整为缩略图。 我想自动(不需要用户干预)以相同的方式重新裁剪原始照片,以获得更高分辨率的正方形版本。 我没有访问原始的修剪器坐标。 我只有这两张照片。 下面是一些示例图片(来自我的Facebook个人资料)来说明我的意思: 原始的,高分辨率的照片 – 裁剪,然后缩小,方形照片 再次,目标是使用小照片作为指导从源头获得更高分辨率的方形照片。 解决scheme的唯一限制是: 普遍性:我正在使用这个configuration文件图片,所以如果它只适用于完全可以接受的面孔! 没有必要推广到各种随机图像,人们的照片是一个很好的起点。 平台:我正在使用Node,但我很乐意在Ruby,Python,Java或C ++(使用Node绑定)中运行此过程。 它几乎肯定会在Heroku或AWS上运行。 速度:这将需要非常快速。 为了这是有用的,它将不得不以联机的方式运行,因为我会阻止用户的界面等待这个动作。 有没有人有任何想法? 我对image processing知之甚less,所以我不知道从哪里开始。 编辑:对于Facebook,具体来说,有一个解决scheme,几乎没有这么难。 原始作物数据可用于configuration文件图像: https : //graph.facebook.com/bcherry/profile?fields=pic_crop 这会让我立即陷入困境,但可能不是一个长期的解决scheme,所以下面提供的答案对于更一般的问题还是很有帮助的。

D3JS:如何将SVG文本转换为path?

有没有一种D3.js的方式来将文本元素转换为path元素? 所以当我抓住生成的SVG,我可以保留我的文字形状。

如何解码“二进制”编码的string到原始二进制缓冲区?

NodeJS的文档强调, binarystring编码是非常不鼓励的,因为它将在未来某个时候被丢弃。 不过,我试图用node-imagemagick模块生成图像缩略图,它只能输出binary编码的string。 我的最终目标是将生成的缩略图作为BLOB提交到SQLite3数据库(我正在使用node-sqlite3 ),所以我想我需要缩略图作为二进制Buffer对象。 如何直接解码node-imagemagick的binary编码输出到一个原始的二进制缓冲区(不只是一个包含binary编码的string的缓冲区)? 我不喜欢使用base64 …