0

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

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

问题在于不同的设备有不同的对角线。管理员仅向 CMS 上传一张尺寸为 668x1024 的图像(例如)。然后我需要将图片发送到具有以下分辨率的设备: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
4

3 回答 3

1

机架应用程序有一个叫做蜻蜓的好宝石。

基本上你保存基本图像,然后你可以在请求中传递分辨率,它会在缓存中保存新的大小。

下面是这个宝石的一些介绍

概述:

Android ==(400x600)=> Rails(ImagesController#show) ===> image_url(400x600).jpg

于 2011-11-17T15:05:11.227 回答
0

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

400x600^
400x600#
400x600>

^ #和在这里>描述

https://github.com/thoughtbot/paperclip

于 2011-11-17T14:12:40.727 回答
0

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

如果您不想使用任何 gem,您可以使用 rails 访问已安装的程序

system

命令。

于 2011-11-17T14:53:54.363 回答