[英]Resize / crop images for android devices (Rails)
我需要为Android App调整图像大小/裁剪不同分辨率的图像。
我知道,这是一个常见问题,但是我找不到适合我的解决方案。
问题在于不同设备的对角线不同 。 管理员仅将一张大小为668x1024的图像上传到CMS(例如)。 然后,我需要以以下分辨率将图片发送到设备:400x600、540x960等。我不能只是调整每个图像的大小,因为在电话上会出现背景线。
因此,我或违反了宽高比(这不好,因为图片变得丑陋)或应该裁剪图像。 但是由于比例不同,很难做到。
我尝试了mini-magick和g1nn13-image-science ,但是在第一个中,我无法获取当前图像的宽度和高度(由于这个原因,我无法实现裁剪算法),第二个则给了我一个错误当我尝试要求image_science时:“没有要加载的文件-内联”
所有帮助和建议都值得赞赏:有关如何做的一些决定(也许不做裁剪,而是其他决定?)或可以帮助我的宝石。
谢谢。
解答:我使用fastimage gem查找图片的当前高度和宽度以及minimagick gem image.shave的方法。
例:
current_w, current_h = FastImage.size(object.attach.path)
if current_w < current_h
remove_h = ((current_h - height)/2).round
image.shave("0x#{remove_h}")
remove_w = ((current_w - width)/2).round
image.shave("#{remove_w}x0")
end
机架应用程序有一个称为蜻蜓的好宝石。
基本上,您保存基本图像,然后可以在请求中传递分辨率,并将新大小保存在缓存中。
这是这个宝石的一些介绍
概述:
Android ==(400x600)=> Rails(ImagesController#show)===> image_url(400x600).jpg
也许这符合您的需求, http://www.gra2.com/article.php/using-rmagick-imagemagick-rails
如果您不想使用任何宝石,则可以通过滑轨访问已安装的程序
system
命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.