我想将图像裁剪到指定的像素区域。我想使用gm
来自https://github.com/aheckmann/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 文件夹,其中包含代表的源代码(带有自述文件。)所以我下载、解压缩并jpegsrc.v6b.tar.gz
按照源文件随附的安装文档中的建议进行安装。
我很确定已安装 jpeg 库cjpeg
,djpeg
也许还有其他东西。但是make uninstall
,我没有发现或发现。我还没有尝试在这个上安装任何其他版本的 jpeg 库。安装 jpeg 库后,我卸载并重建了 graphicsmagick。
仍然没有列出 JPEG 代表gm convert -list formats
。
我正在从 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