Mac OS x 安装 GraphicsMagick
GraphicsMagick安装、实时生成缩略图
http://elf8848.iteye.com/blog/1708994
----------------------------------------------------------------------------
安装依赖库,参考: ImageMagick +Jmagick安装
安装jpeg包
----------------
brew install libjpeg
安装在了/usr/local/Cellar/jpeg/8d
安装jasper包
----------------
brew install jasper
安装在/usr/local/Cellar/jasper/1.900.1
安装libpng
----------------
由于是Mac ,所以使用brew包管理器,快速安装
rew install libpng
安装在了/usr/local/Cellar/libpng/1.5.13
安装freetype包
----------------
brew install freetype
安装在了/usr/local/Cellar/freetype/2.4.10
安装zlib包
----------------
系统自带不用安装了
自动安装GraphicsMagick
----------------
自动安装:brew install GraphicsMagick
安装在了/usr/local/Cellar/graphicsmagick/1.3.17
查看安装信息:
zhaorai@zhaomatoMacBook-Pro lib$ gm -version
- GraphicsMagick 1.3.17 2012-10-13 Q8 http: // www.GraphicsMagick.org/
- Copyright (C) 2002-2012 GraphicsMagick Group.
- Additional copyrights and licenses apply to this software.
- See http: // www.GraphicsMagick.org/www/Copyright.html for details.
- Feature Support:
- Thread Safe yes
- Large Files (> 32 bit) yes
- Large Memory (> 32 bit) yes
- BZIP yes
- DPS no
- FlashPix no
- FreeType yes
- Ghostscript (Library) no
- JBIG no
- JPEG-2000 yes
- JPEG yes
- Little CMS no
- Loadable Modules no
- OpenMP no
- PNG yes
- TIFF no
- TRIO no
- UMEM no
- WMF no
- X11 no
- XML yes
- ZLIB yes
- Host type: x86_64-apple-darwin11.4.2
- Configured using the command:
- ./configure '--disable-dependency-tracking' '--prefix=/usr/local/Cellar/graphicsmagick/1.3.17'
- '--enable-shared' '--disable-static' '--disable-openmp' '--with-gs-font-dir=/usr/local/share/ghostscript/fonts'
- '--without-x' 'CC=/usr/bin/llvm-gcc' 'CFLAGS=-Os -w -pipe -march=core2 -msse4 -mmacosx-version-min=10.7'
- 'LDFLAGS=-L/usr/local/lib -F/usr/local/Frameworks -L/usr/X11/lib' 'CPPFLAGS=-F/usr/local/Frameworks -I/usr/X11/include'
- 'CXX=/usr/bin/llvm-g++' 'CXXFLAGS=-Os -w -pipe -march=core2 -msse4 -mmacosx-version-min=10.7'
- Final Build Parameters:
- CC = /usr/bin/llvm-gcc -std=gnu99
- CFLAGS = -Os -w -pipe -march=core2 -msse4 -mmacosx-version-min=10.7 -Wall -D_THREAD_SAFE
- CPPFLAGS = -F/usr/local/Frameworks -I/usr/X11/include -I/usr/local/Cellar/freetype/2.4.10/include/freetype2 -I/usr/include/libxml2
- CXX = /usr/bin/llvm-g++
- CXXFLAGS = -Os -w -pipe -march=core2 -msse4 -mmacosx-version-min=10.7 -D_THREAD_SAFE
- LDFLAGS = -L/usr/local/lib -F/usr/local/Frameworks -L/usr/X11/lib -L/usr/local/Cellar/freetype/2.4.10/lib -L/usr/lib
- LIBS = -lfreetype -ljasper -ljpeg -lpng15 -lbz2 -lxml2 -lz -lm -lpthread
* –prefix=/opt/local 让ImageMagick/GraphicsMagick与MacPorts的库文件安装到同一个目录。
如果你想要安装到其它目录,则输入不同的目录路径,如果不声明–prefix,默认会将其安装到/usr/local。
* –disable-static和–with-modules使得ImageMagick/GraphicsMagick以动态链接库的方式安装,
现在安装ImageMagick/GraphicsMagick只是为了在Ruby中使用,所以我用–without-perl和–without-magick-plus-plus以免去安装Perl和C++的支持
* –with-quantum-depth=8配置ImageMagick使用8位的色深。默认是16位。参与RMagick Hints & Tips Forum论坛中的讨论Speed up your RMagick apps in 1 easy step了解这个选项有什么作用。
* –with-gs-font-dir=/opt/local/share/ghostscript/fonts让ImageMagick/GraphicsMagick知道Ghostscript字体安装在哪个角落里。
如果你某个目录里有“标准”的windows TrueType字体,也可以设置–with-windows-font-dir=选项让ImageMagick/GraphicsMagick使用它们。
查看ImageMagick/GraphicsMagick的README.txt文件了解更多选项的信息。
手动安装GraphicsMagick
----------------------
手动安装
下载地址 ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/
tar zvxf GraphicsMagick-1.3.17.tar.gz
cd GraphicsMagick-1.3.17
./configure CC=clang --prefix=/usr/local/GraphicsMagick-1.3.17 --with-quantum-depth=16 --enable-shared --enable-static
make
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
- ----------
- ld: symbol(s) not found for architecture x86_64
- collect2: ld returned 1 exit status
- make[1]: *** [magick/ libGraphicsMagick.la ] Error 1
- make: *** [all] Error 2
最后还是有错,未成功。
在Mac下为Eclipse程序设定环境变量
事件背景
我平时使用Mac做java开发工作,处理图片使用了GraphicsMagick。
我按规范安装了GraphicsMagick,在 /usr/local/bin目录中也自动建立了gm命令的软连接,在终端(命令行)已可以执行gm命令了。
问题
我平时使用Mac做java开发工作,使用的开发工具是Eclipse。遇到的问题是在Eclipse启动java程序无法找到gm命令。
一般遇到这种问题时,解决的基本思路是:如果找不到gm命令,请设置环境变量,或建立软连接。
这两个方法在windows\Linux操作系统中都OK,就是在Mac OS操作系统中不行。
原因
在Mac下,其GUI程序和终端程序使用了两套不同的环境变量设置。修改profile文件仅仅在使用终端的时候生效,如果想要GUI程序也能继承相应的环境变量设置,则需要从终端启动应用程序才可以。想要为从LauncherPad或Finder中启动的GUI程序设置环境变量的话,则需要额外的步骤。
而且设置的方法,随着Mac OS的版本升级一直在变化。真是恶心阿。
工具
Map<String,String> map=System.getenv();可查看Eclipse已加载的环境变量。
通过上面的工具查看到 PATH=/usr/
bin:/bin:/usr/sbin:/sbin,说明PATH只加载了这4个目录,并未加载/usr/local/bin目录。
在高版本的Mac OS中,还没法改变,真是恶心阿。
解决思路一:建立软连接
在这4个目录(/usr/bin,/bin,/usr/sbin,/sbin)中任意一个目录 中建立gm命令的软连接。
ln -s /usr/local/Cellar/graphicsmagick/1.3.26_1/bin /usr/sbin/gm
ln -s /usr/local/Cellar/graphicsmagick/1.3.26_1/bin /sbin/gm
以上操作都失败,原因是:无权限,root账号都无权限,这是真的。
这是因为:系统集成保护(System Integrity Protection)
在 OS X 10.11 中引入的 Rootless,即使是root用户,将无法对 /System, /bin, /sbin, /usr 目录的修改(/usr/local 目录除外)路径有写和执行权限。
要想关闭Rootless,请看下面的文章:
参考:
http://www.cnblogs.com/qq419524837/articles/4919742.html
解决思路二:添加PATH
Mac下的Eclipse,只加载了:PATH=/usr/
bin:/bin:/usr/sbin:/sbin,
其它的不加载。
添加PATH也不行了。
/etc/launchd.conf文件完全失效了。该文件在Yosemite下完全被抛弃了,不会被读取。
解决思路三:环境变量(最终采用的此方案)
GraphicsMagick+Im4Java,Im4Java会自动去找"IM4JAVA_TOOLPATH"环境变量,在这个路径中查找gm命令。
~/.bash_profile (一般在这个文件中添加用户级环境变量)
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
vi ~/.bash_profile
export IM4JAVA_TOOLPATH=/usr/local/Cellar/graphicsmagick/1.3.26_1/bin
想立即生效请运行: source ~/.bash_profile
加完之后,在终端(命令行)可以查到这个环境变量,但Eclipse中未加载这个环境变量。
具体原因请看上面的“原因”这一段。
还需要做一步工作,使用launchctl setenv指令,给GUI程序添加环境变量。
通过脚本读取~/.bash_profile文件,写这里的环境变量,使用launchctl setenv指令,添加给GUI程序。
修改环境变量后需要重新加载脚本
launchctl unload ~/Library/LaunchAgents/osx-env-sync.plist 先卸载
launchctl load ~/Library/LaunchAgents/osx-env-sync.plist 在重新加载
具体的操作请看下面的文章
http://blog.csdn.net/zhzdeng/article/details/64921967
扩展阅读:
在Mac下为GUI程序设定环境变量
http://zodiacg.net/2013/05/set-path-under-mac/
在Yosemite下为GUI程序设置环境变量
http://zodiacg.net/2015/04/set-environment-variables-on-yosemite/