我需要为 Android 应用调整不同分辨率的图像大小/裁剪图像。
我知道,这是一个常见问题,但我找不到适合我的解决方案。
问题在于不同的设备有不同的对角线。管理员仅向 CMS 上传一张尺寸为 668x1024 的图像(例如)。然后我需要将图片发送到具有以下分辨率的设备: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