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

时间:2015-06-16 10:12:49

标签: java image-resizing imgscalr

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

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

调整大小方法的理想参数应该是什么,因为我需要生成输入图像的2 KB缩略图视图,其大小约为2 MB。

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

1 个答案:

答案 0 :(得分:5)

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

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

Aspect Ratios

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

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

<强>质量

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

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

除此之外,您还可以要求图书馆对图像应用一些额外的过滤(称为图像操作) - 如果您获得锯齿状边缘,我会提供一些方便的默认设置,就像抗锯齿一样您正在扩展的大量源素材(在使用diag直线缩放桌面和其他内容的截图时很常见)

<强>总体

图书馆应该尽可能简单地使用,而不是更难:

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

会让你开始......所有关于质量,拟合,模式,操作等的其他操作只是你可以选择做的其他事情,如果你认为结果不是你想要的。

希望有所帮助!

相关问题