使用ImgScalr调整图像大小的最佳分辨率

aya*_*587 2 java image-resizing imgscalr

我是ImgScalr API的新手.我需要将我的图像调整为不同的视图,其中一个是移动视图,第二个是缩略图视图.我已经使用了resize方法,但有一个疑问.哪个是最好的调整大小方法,从可用的多个选项调整图像大小,以保持适当的宽高比(如图像不会变得模糊)

我注意到的一件事是每个resize方法都接受一个targetSize参数.如何指定此字段可确保图像的宽高比不会受到影响.

考虑到我需要生成一个大小约为2 MB的输入图像的2 KB缩略图视图,resize方法的理想参数应该是什么?

由于缺乏足够的文档和示例,我有点困惑.

Riy*_*lla 6

imgscalr作者在这里 - 绝对理解混乱,代码库本身(如果你碰巧看一眼GitHub)几乎是50%评论,如果你好奇图书馆是如何工作的,但从使用角度看你是对的 - 我没有把很多时候进入例子.

希望我能为您快速点击一些亮点......

Aspect Ratios

imgscalr的核心设计租户总是要尊重宽高比 - 所以如果传入200x1(一些荒谬的维度作为例子),它将尝试计算满足那些"目标"维度的最小尺寸.

如果你总是希望你的缩略图在200x200的某个方框中,这很方便 - 只需将其传入,imgscalr将确定最终的宽度/高度不会大于那个(可能是200x127或78x200)

质量

默认情况下,库通过考虑尺寸变化的增量以及放大/缩小并选择最接近的方法(速度VS质量)来执行所谓的"平衡"质量方法.

您可以强制它尽可能快地进行缩放(扩展操作的好主意)或强制它始终使用高质量或超高质量(如果您想要非常清晰的缩略图或其他大幅降低图像分辨率的操作,那么您就可以了希望他们看起来还不错

最重要的是,您还可以要求图书馆对图像应用一些额外的过滤(称为图像操作) - 如果您在很多区域出现锯齿状边缘,我会提供一些方便的默认设置,就像抗锯齿一样.您正在缩放的​​源素材(在使用diag直线缩放桌面和其他内容的屏幕截图时很常见)

总体

该库应该尽可能简单易用,不比以下更难:

BufferedImage thumbnail = Scalr.resize(src, 128);

会让你开始...所有其他围绕质量,装配,模式,操作等的操作只是你可以选择做的其他事情,如果你决定结果不是你想要的.

希望有所帮助!