繁体   English   中英

调整大小/裁剪Android设备的图像(Rails)

[英]Resize / crop images for android devices (Rails)

我需要为Android App调整图像大小/裁剪不同分辨率的图像。

我知道,这是一个常见问题,但是我找不到适合我的解决方案。

问题在于不同设备的对角线不同 管理员仅将一张大小为668x1024的图像上传到CMS(例如)。 然后,我需要以以下分辨率将图片发送到设备:400x600、540x960等。我不能只是调整每个图像的大小,因为在电话上会出现背景线。

因此,我或违反了宽高比(这不好,因为图片变得丑陋)或应该裁剪图像。 但是由于比例不同,很难做到。

我尝试了mini-magickg1nn13-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

尝试使用回形针,它使用ImageMagick并允许指定其裁剪算法,例如:

400x600^
400x600#
400x600>

^ #>这里描述

https://github.com/thoughtbot/paperclip

也许这符合您的需求, http://www.gra2.com/article.php/using-rmagick-imagemagick-rails

如果您不想使用任何宝石,则可以通过滑轨访问已安装的程序

system

命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM