我希望将图像裁剪到指定的像素区域。我想使用来自https://github.com/aheckmann/gm的https://github.com/aheckmann/gm模块。我正在运行Linux 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。
尽管如此,在gm convert -list formats中仍然没有JPEG委托。
我正在从Imagemagick迁移,它在调整jpegs大小方面从来没有任何问题,即使没有安装这个库也是如此。
我应该怎么做才能得到图形化的图形来处理jpegs?
下面是我如何调用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发布于 2013-04-19 14:11:46
通过告诉gm库使用imagemagick二进制文件而不是默认的图形二进制文件,我找到了一个成功的解决办法:
var gmagic = require('gm');
var imagic = gmagic.subClass({imageMagick: true});
...
imagic(cfg.tmpPath)
.crop(h,w,x0,y0)
.write(cfg.croppedPath, function(err, stdout, stderr, command){
if(err){ next(err) }
else { next(null, raft) };
});发布于 2013-04-25 13:37:55
考虑到您使用的是Linux,GraphicsMagick查找libjpeg的最佳解决方案是安装libjpeg开发包(libjpeg-dev)、重新运行GraphicsMagick配置脚本、重新构建和安装。一定要为支持您感兴趣的其他格式的库添加-dev包。
如果要使用从源代码中安装的libjpeg,则需要将LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include选项添加到GraphicsMagick配置脚本调用中。请注意,Linux可能带有与jpeg 6b不同的libjpeg (例如jpeg 8或libjpeg turbo),最好不要在系统上有重复的库。
发布于 2015-06-17 09:24:22
我意识到这完全是Linux的问题,但也许这会对某人有帮助.
在Mac上,我用的是HomeBrew。只需运行这3行(对于我来说,chown行是必需的,您可能需要先尝试一下):
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sudo chown -R $USER:admin /usr/local
brew install graphicsmagick如果它抱怨jpeg库未链接,请运行brew doctor +按照说明链接任何丢失的“桶”。
如果有些事情搞砸了,您想重新开始(请参阅https://stackoverflow.com/a/17846596/188926):
brew uninstall imagemagick graphicsmagick libpng jpeg
brew cleanup -s
brew install graphicsmagickhttps://stackoverflow.com/questions/16094875
复制相似问题