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

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

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

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

共收到 5 条回复

请高手帮忙吧!

给你个例子,这个是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搜一下,很多的

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