围绕渐变为 1 度的中心旋转缓冲图像的最佳方法是什么?
我知道有 AffineTransform,但这会导致剪切和奇怪的拉伸或应该是空白的黑点。
编辑我正在处理的图像大小是图标大小,因此通常为 24x24 到 48x48 像素
围绕渐变为 1 度的中心旋转缓冲图像的最佳方法是什么?
我知道有 AffineTransform,但这会导致剪切和奇怪的拉伸或应该是空白的黑点。
编辑我正在处理的图像大小是图标大小,因此通常为 24x24 到 48x48 像素
如此小角度的旋转质量会随着图像的大小而有很大的不同。你的图像有多大?
[OP编辑问题以指示图像大小后]
IMO 图像太小,无法进行任何有意义的旋转,而不是 90 度的倍数(假设它是一个正方形)。恐怕这需要由平面设计师手动完成,以获得最佳质量。
[另一种选择]
保留图像的高分辨率版本。将所有转换应用于此图像,然后按比例缩小以获得图标。
您是否尝试过设置图形上下文的抗锯齿?
g2d.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON
);
作为一个快速而肮脏的修复,您是否考虑过以下方法:
在缩减过程中,任何低级伪影都应该消失。这可能不是最快的选择,但它可以用最少的麻烦做你想做的事——更复杂的解决方案可能归结为在幕后做同样的事情。
以下是一些链接,这些链接解释了在将转换应用于图标时您可能希望如何进行。
Java 2D 技巧:抗锯齿图像转换 http://weblogs.java.net/blog/campbell/archive/2007/03/java_2d_tricker_1.html
BufferedImage 中 Raster 或 DataBuffer 的子像素采样。 http://forums.java.net/jive/thread.jspa?messageID=204921&tstart=0