Gem 图片如何批量生成缩略图和加水印的 Gem

xufeng · 2012年02月28日 · 最后由 kenshin54 回复于 2012年02月28日 · 4944 次阅读

采集过来的图片如何批量生成缩略图和加水印啊?Gem 推荐一下,

另外,问一下,使用 carriverWave Gem 的时候,图片的字段 string, 后台无法单独赋值成功,必须前台上传才能成功。无法同时采集图片,请教如何做啊?

请高手帮忙吧!

给你个例子,这个是 linux 原生命令,你也可以换 mini_magick 代替

在 blue.png 这张图片的 11, 20 像素位置,写上字母 J,字体文件是'/var/tmp/tahomabd.ttf',字号 14,颜色 '#154ca0' ·convert -font '/var/tmp/tahomabd.ttf' -fill '#154ca0' -pointsize 14 -draw 'text 11, 20 J' blue.png j.png·

下面是图片操作: 去掉图片多余的 extif 信息,减小体积 mogrify -strip #{path}

下面是生成缩略图的

强制转换图片至 120x80 比例: convert -resize "120x80!" #{path} #{path.gsub('.jpg', '_120.jpg')}

转换图片到,长/宽 最大值为 200: convert -resize "200>" #{path} #{path.gsub('.jpg', '_200.jpg')}

转换图片到,长/宽 最大值为 400: convert -resize "400>" #{path} #{path.gsub('.jpg', '_400.jpg')}

直接赋值,不是赋字符串,github 上就有写啊

u = User.new
u.avatar = File.open('somewhere')
u.save!
u.avatar.url # => '/url/to/file.png'
u.avatar.current_path # => 'path/to/file.png'
u.avatar.identifier # => 'file.png'

在 uploader 里加上 version,保存时就会生成生成缩略图

version :thumb do
   process :resize_to_fill => [200,200]
end

水印的话,在 uploader 里加个 process,用 mini_magick 的 api 加一下就好。 google 搜一下,很多的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号