簡體   English   中英

BufferedImage旋轉

[英]BufferedImage Rotation

圍繞其傾斜度為1度的中心旋轉緩沖圖像的最佳方法是什么?

我知道有AffineTransform,但這會導致剪切和怪異的拉伸或應為空白的黑點。

編輯我要處理的圖像大小是圖標大小,因此通常為24x24到48x48像素

如此小的角度的旋轉質量將隨圖像大小而變化很大。 您的形象有多大?

[OP編輯問題以指示圖像大小后]

IMO圖像對於任何有意義的旋轉而言都太小了,除了90度的倍數(假設其為正方形)以外。 恐怕這需要由圖形設計師手動完成才能獲得最佳質量。

[另一種選擇]

保持圖像的高分辨率版本。 將所有變換應用於此圖像,然后按比例縮小以獲取圖標。

您是否嘗試過設置圖形上下文的抗鋸齒功能?

g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON
);

作為快速而骯臟的修復程序,您是否考慮過以下方法:

  • 通過將圖像繪制到新的緩沖圖像上,將圖像放大8倍
  • 通過仿射變換將其繪制來旋轉圖像
  • 通過將其繪制到另一個新的緩沖圖像上,再次將其縮小

在縮小過程中,任何低水平的文物都應消失。 這可能不是最快的選擇,但它可能會以最小的麻煩來做您想要的事情-更復雜的解決方案可能會歸結為在幕后做同樣的事情。

以下是一些鏈接,這些鏈接說明了將變換應用於圖標時可能要如何進行。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM