linux的安装比较复杂,试错多次之后,并google之后查询若干信息才成功,记录在这里,供大家参考:
1.安装jpg
jpegsrc.v8a.tar.gz
2.安装png
libpng-1.4.1.tar.gz
3.安装freetype。字体。
freetype-2.3.12.tar.gz
4.安装Ghostscript
ghostscript-8.71.tar.gz
5.安装Ghostscript font
ghostscript-fonts-std-8.11.tar.gz
上述几种包都按照缺省路径安装,可以将lib文件安装到 /usr/local/lib中;
6.安装 ImageMagick
安装之前配置如下环境(这里非常重要,实际上在于说明编译中需要的库,需要指对位置,或者可以在./configure增加配置也是可以的):
$ export LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib"
$ export LD_LIBRARY_PATH="/usr/local/lib"
后面这句话比较重要。
然后
./configure --without-perl
make && make install
关注点:
在执行./configure --without-perl的时候,可以观察其中的一些参数,比如是否支持tiff、jpegv1还是jpegv2之类的信息。
测试convert命令是否成功,成功后进行下面的操作。
7.安装rmagick
gem install --remote rmagick
当出现:
Successfully installed rmagick-2.12.2
1 gem installed
rmagick安装成功;
显示的安装成功并不表示实际可用,还要进行如下测试。
8.测试是否可用
irb -r rubygems -r RMagick
解释:将rubygems和RMagick装载到irb环境中。
或者在irb环境中另行加载
irb
require 'rubygems'
require 'RMagick'
注意:这里RMagick的前两个是大写。
同时rubygems放在前面装载。
如果装载成功,就返回true。
测试是否可以使用RMagick中的方法
Magick::Pixel.from_color("red")
会返回:
=> red=65535, green=0, blue=0, opacity=0
ok,大功告成。
最好结合web应用中的attachment_fu,设置resize参数,看看上载图片是否可以进行resize,同时看看attachments表中,在上传图片之后,width和height两个属性是否有值。
下面是库表的示例:
在使用attachment_fu插件的avatar.rb中设置为:
class Avatar < ActiveRecord::Base
has_attachment :content_type => :image,
:storage => :file_system,
:path_prefix=>'/public/avatars',
:resize_to => [50,50],
#:max_size => 100.megabytes,
#:thumbnails => {:thumb => [20,20]}
:processor => :Rmagick
#:content_type => ['application/pdf', 'application/msword', 'text/plain']
validates_as_attachment
end
上传图片之后,在avatars表中,会生成如下记录。
id | user_id | topic_id | db_file_id | filename | content_type | size | height | width | parent_id | thumbnail
| 22 | NULL | 266 | NULL | 200803_1.JPG | image/jpeg | 350131 | 50 | 50 | NULL | NULL
可以看到hight和width都有值,确实按照avatar模型类中的定义,生成一个转换之后的图片。缩小了,可以减少空间,呵呵,省的都是自己的。
9.后话:
如果发现有些图片类型不支持,则需要下载相关的包,重新编译即可。
还有就是成功之后的总结,发现问题的关键还是在于编译过程的细节把握上面,如果能够理解,则比较顺利。