mini_magick 简单处理图片

Posted by wxianfeng Thu, 02 Sep 2010 05:56:00 GMT

最近blog换了皮肤,以前是最大宽度,现在宽度限制死了,有的图片超过了宽度,很丑陋,于是用minimagick对所有的图片统一缩放了下,这下图片的大小刚刚好,缩放比resize的效果要好,图片不会扭曲难看,
minimagick和rmagick都是调用imagemagick的ruby接口,使用起来很方便。。。。

1,缩放 (也就是我用来处理我blog里图片的脚本)

require 'rubygems'
require 'mini_magick'

# path = "E:/Rubyproject/wxianfeng_com/public/files/" # windows路径
path = "/usr/local/system/www/wxianfeng_com/shared/public/files/"
files = Dir.open(path).to_a.select{|x| x != '.' &&  x!= '..' && x != '.svn' && x != 'Thumbs.db'}
imgs = files.select { |f| f !~ /^(thumb_|middle_)/ }

imgs.each do |ele|
  p ele
  img_path = path + ele
  img = MiniMagick::Image.from_file(img_path)
  w,h = img[:width],img[:height] 
  percent = ((480/w.to_f) * 100).to_i
  img.combine_options do |c|
    c.sample "#{percent}%" # 缩放
  end
  img.write(img_path)
end

2,resize

image = MiniMagick::Image.from_file("input.jpg") # or MiniMagick::Image.new("input.jpg")
image.resize "100x100" # or image.thumbnail "100x100"
image.write("output.jpg")

3,裁剪

require ‘mini_magick’
img = MiniMagick::Image.from_file “1.jpg” #取得宽度和高度
w,h = img[:width],img[:height] #=> [2048, 1536]
shaved_off = ((w-h)/2).round #=> 256
img.shave “#{shaved_off}x0″ #此处表示宽度上左右各截取256个像素,高度上截取0像素
img.write “2.jpg”

4,旋转

image = MiniMagick::Image.from_file("input.jpg")
  image.combine_options do |c| 
 c.rotate "-90>" # 旋转 90 度
  end
  image.write("input.jpg") # 同名 替换掉原来的

SEE:
http://github.com/probablycorey/mini_magick
http://www.blogkid.net/archives/2154.html


centos install imagemagick + rmagick

Posted by wxianfeng Mon, 23 Aug 2010 06:17:00 GMT

环境:centos 5.5 + imagemagick 6.2.8 + rmagick 1.15.17

原本想安装最新版的rmagick的,但是发现编译ImageMagick安装不是少这个就是少那个,一汽之下,最后还是 yum 安装的比较快。。。。

如果你已经yum安装了,但是想再编译安装,需要先卸载原来的:

>yum remove ImageMagick

安装过程:

yum install ImageMagick
yum install ImageMagick-devel
gem install rmagick -v=1.15.17 --no-rdoc --no-ri -- --disable-htmldoc # 注意后面的参数需要加上,没加上会报错

安装 rmagick时主要还有版本问题,出错的话,会提示你ImageMagick必须大于多少版本,那么如何查看ImageMagick版本?

>convert -version

SEE:
http://stackoverflow.com/questions/1254366/problem-installing-rmagick-rubygem-on-centos-5