#11-21# minimagick处理图片

来源: http://jingpin.jikexueyuan.com/article/15669.html

客户端发送图片时处理规则

除非用户主动选择发送原图外,所有的图片均需要经过本地先处理才能上传服务器端,处理规则如下

a,图片宽或者高均小于或等于1280时图片尺寸保持不变,但仍然经过图片压缩处理,得到小文件的同尺寸图片

b,宽或者高大于1280,但是图片宽度高度比小于或等于2,则将图片宽或者高取大的等比压缩至1280

c,宽或者高大于1280,但是图片宽高比大于2时,并且宽以及高均大于1280,则宽或者高取小的等比压缩至1280

d,宽或者高大于1280,但是图片宽高比大于2时,并且宽或者高其中一个小于1280,则压缩至同尺寸的小文件图片

在Rails中用minimagick进行图片处理

处理逻辑: 得到中间部分,然后再调整大小.

安装imagemagick
Ubuntu上:
sudo apt-get -y install imagemagick

sudo apt-get -y install libmagic-dev

sudo apt-get -y install libmagickwand-dev

Mac:
brew install imagemagick

安装 gem: mini_magick

gem install mini_magick

使用

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”

resize

img.resize 100
img.write “3.jpg”

来自:http://jingpin.jikexueyuan.com/article/15669.html

你可能感兴趣的:(#11-21# minimagick处理图片)