• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby图片上传时的裁剪和缩放

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

常见的网站,都涉及到用户的头像上传这方面,这里就需要将上传的图片经过处理后生成规定大小的头像。在ROR项目中,要对图片进行处理,首先得安装ImageMagick?-6.3.0-7-Q8-windows-dll.exe,然后安装Mini_Magick,gem install mini_magick,(RMagick也能对图片进行处理,但我没有找到裁剪函数,所以我选择使用MiniMagick?.)安装完成后在工程envirmoment.rb中添加代码require 'mini_magick'.
由于用户上传的图片并不一定是头像所要求的尺寸,所以需要对上传的图片进行缩放,而如果图片是矩形而头像要求方形的话,缩放后图像会变形。而对图片的处理应该首先裁剪成方形,然后进行缩放,这样效果才是最好的。
具体的步骤是:

# 根据图片的宽高确定裁剪图片成正方形,并进行缩放
#【引数】图片名
#【返値】
#【注意】
#【著作】
def save_photo(photo)
    img = MiniMagick::Image.open(photo)     # 通过路径打开图片
    w,h = img[:width], img[:height]         # 获得图片的宽和高
    shaved_off = w >= h ? [((w-h)/2).round, 0] : [0, ((h-w)/2).round]  # 判断宽高,将长的一部分左右各裁一半
    img.shave "#{shaved_off[0]}x#{shaved_off[1]}"                      # shave 裁剪函数
    img.resize 150                                                     # 图片按150的尺寸缩放
    img.write(photo)                                                  # 按原路径保存
end

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
〖Ruby〗Ruby运算符/优先级发布时间:2022-07-13
下一篇:
ruby -- 进阶学习(五)使用Ckeditor插件上传中文图片发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap