GraphicsMagic 有一个Nodejs的客户端:
https://github.com/aheckmann/gm
简直就是nodejs处理图片的神器呀!
但是使用它之前必须得安装GraphicsMagic,于是开始了痛苦的折腾之旅.
开源系统或者组件就是这样,编译安装一个东西,同时又依赖别的组件,又要编译、安装... 真的很蛋疼...
GraphicsMagic根据使用功能的不同,依赖不同的组件,我需要的只是对jpeg和png进行简单的图片处理(缩放、裁剪啊什么的,不过它的功能可以更加强大),主要依赖了两个组件:
libjpeg-6b.tar.gz
libpng-1.4.7.tar.gz
首先必须先下载以上的两个组件,然后解压,然后./confiure 然后sudo make&make install
接着就可以安装GraphicsMagic了:
到这里选择你需要的版本并下载。然后解压。在解压的目录里运行:
./configure CC=clang make sudo make install
注意confiure命令后面的CC=clang。它指定了编译器为Mac下推荐使用的clang。如果没有这个参数,Makefile将会使用系统默认的编译器进行编译,而这个编译器不是GraphicsMagic所推荐的,并且在make的过程中会出现以下错误:
Undefined symbols for architecture x86_64: "___builtin_object_size", referenced from: _BlurImageScanlines.omp_fn.6 in libGraphicsMagick.a(magick_libGraphicsMagick_la-effect.o) _XShearImage.omp_fn.0 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o) _YShearImage.omp_fn.1 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o) ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[1]: *** [utilities/gm] Error 1 make: *** [all] Error 2
切记要在confiure的时候./configure CC=clang 呀,这个是哥血泪摸索出来的经验,希望奉献出来让大家少走弯路。
好,npm install gm
然后写一段nodejs的代码测试一下:
var gm = require('gm'); gm('./test.jpg') .size(function(err, image){ console.log(image.width, image.height); });