【发布时间】:2013-04-12 06:31:10
【问题描述】:
我想将图像裁剪到指定的像素区域。我想使用来自https://github.com/aheckmann/gm 的gm 模块。
我正在运行 Linux Mint 13 和 node.js v0.9.4pre。
我遇到了一个听起来好像 graphicsmagick 不知道 jpegs 的错误:
Error: Command failed: gm convert: No decode delegate for this image format (./assets/images/temp/2aadd4379e1cf2b59429994270db2a8a.jpg)
果然,gm convert -list formats 没有显示 jpeg 委托:
<snip>
IPTC P rw- IPTC Newsphoto
IPTCTEXT P rw- IPTC Newsphoto text format
IPTCWTEXT P rw- IPTC Newsphoto text format
K25 S r-- Kodak Photo RAW
<snip>
graphicsmagick 有一个 ftp folder 包含代表的源代码(带有 readme。)所以我下载、解压缩并安装了 jpegsrc.v6b.tar.gz,正如我的源文件附带的安装文档中所建议的那样。
我很确定 jpeg 库安装了 cjpeg 和 djpeg 可能还有其他东西。但是,我没有找到 make uninstall 或清单。我还没有尝试在这个上安装任何其他版本的 jpeg 库。安装 jpeg 库后,我卸载并重建了 graphicsmagick。
不过,gm convert -list formats 中没有列出 JPEG 代表。
我正在从 Imagemagick 迁移,它在调整 jpeg 大小时从未遇到任何问题,即使我没有安装此库。
我必须做什么才能让 graphicsmagic 处理 jpeg?
这是我调用 gm 的方式:
var gmagic = require('gm');
gmagic(cfg.tmpPath)
.crop(h,w,x0,y0)
.write(cfg.croppedPath, function(err){
if(err){ done(err) }
else { done(null, cfg.croppedPath) };
});
这是我用来安装 jpeg 库和 graphicsmagick 的命令:
$ cd ~/source
$ wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
$ tar -xzvf jpegsrc.v6b.tar.gz
$ cd jpeg-6b
$ ./configure
$ make
$ sudo make install
$ cd ~/source
$ wget ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.18.tar.xz
$ tar -xJvf GraphicsMagick-1.3.18.tar.xz
$ cd GraphicsMagick-1.3.18
$ ./configure
$ make
$ sudo make install
$ npm install gm
【问题讨论】:
标签: node.js imagemagick jpeg graphicsmagick