什麼是旋轉一個bufferedimage關於其中心梯度爲1度的最佳方式?BufferedImage旋轉
我知道有AffineTransform,但會導致剪切和怪異的拉伸或應該是空白的黑點。
編輯我處理的圖像的大小是圖標的大小,因此通常24x24的高達48×48像素
什麼是旋轉一個bufferedimage關於其中心梯度爲1度的最佳方式?BufferedImage旋轉
我知道有AffineTransform,但會導致剪切和怪異的拉伸或應該是空白的黑點。
編輯我處理的圖像的大小是圖標的大小,因此通常24x24的高達48×48像素
旋轉,這樣一個小角度將與圖像的大小變化很大的質量。你的形象有多大?
[OP的編輯的問題後,以指示圖像的大小]
IMO的圖像是比90度(假定其爲正方形)的倍數以外的任何有意義的旋轉太小。恐怕這需要由圖形設計師手動完成以獲得最佳質量。
[另一種替代方法]
保持圖像的高分辨率版本。將所有轉換應用到該圖像,然後縮小以獲取圖標。
您是否嘗試過設置圖形上下文的反鋸齒?
g2d.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON
);
以下是一些鏈接,說明在將轉換應用到圖標時如何繼續。
的Java 2D詭計:抗鋸齒圖像來變換柵格或在的DataBuffer BufferedImage的 http://weblogs.java.net/blog/campbell/archive/2007/03/java_2d_tricker_1.html
子像素採樣。 http://forums.java.net/jive/thread.jspa?messageID=204921&tstart=0
作爲一個快速和骯髒的修復,您是否考慮了以下方法:
在縮小規模期間,任何低級別的文物都應該消失。這可能不是最快的選擇,但它可以做到最少的大驚小怪 - 更復雜的解決方案可能歸結爲在幕後做同樣的事情。
一般在24x24像素到48x48像素之間,它是一個非常小的圖像 – 2009-02-19 19:08:45