单步缩放的主要问题是它们通常不会产生高质量的输出,因为它们专注于将原始图像压缩到更小的空间中,通常通过剔除大量像素信息(不同的算法完成不同的事情,所以我归纳有效)

威尔drawGraphics规模上下,是的,它会向它或产生高质量的输出?这些将归结为实现,一般来说,大多数默认使用的缩放算法都集中在速度上。你可以通过一些小小的方法来实现,但通常情况下,除非你在一个小范围内扩展,否则质量通常会受到影响(从我的经验来看)。

一般来说,推荐使用专用库,如imgscalr,从我玩过的十分钟时间里,它做得很好,或者执行一个阶梯式的规模。

阶梯式缩放基本上是将图像上下移动2的幂次,直到达到所需的大小。请记住,扩大规模只不过是占用一个像素并稍微扩大一点,所以如果您扩大到一个非常大的尺寸,质量将永远是一个问题。

例如...

记住,任何缩放通常是昂贵的操作(基于图像的原始和目标尺寸),所以一般来说最好是尝试在绘制过程的大小以及可能的背景下进行这些操作。

还有一个问题是否要保持图像的宽高比?根据你的例子,图像将以方形方式缩放(拉伸以满足目标尺寸的要求),但这通常是不期望的。您可以将-1传递给宽度或高度参数,并且底层算法将保留原始图像的宽高比,或者您可以简单地控制并确定是否要将图像填充或适合目标区域,例如...

一般情况下,我避免使用drawImage或getScaledInstance大部分时间(如果你只缩放在小范围内或者想要做低质量,快速的规模,这些都可以工作),并更多依赖于适合/填充目标区域和缩放等事情。使用我自己的方法的原因简直归结为并不总是被允许使用外部库。尼斯不得不重新发明轮子,你可以