我有一個單獨的.png圖像,上面有多個圖標(帶有透明區域),並且想從中裁剪單個圖標。在Java ME中它很直接,但在黑莓中我還沒有找到相同的東西。該code here shows an example with a Bitmap,但是這樣做油漆的透明區域使用白色:如何在保留透明度的情況下在BlackBerry中裁剪.png EncodedImage
public Bitmap cropImage(Bitmap image, int x, int y, int width, int height) {
Bitmap result = new Bitmap(width, height);
Graphics g = new Graphics(result);
g.drawBitmap(0, 0, width, height, image, x, y);
return result;
}
我需要同樣的一個EncodedImage保持透明度,但Graphics
構造函數只接受一個Bitmap
。有沒有其他方法可以實現這一點?感謝您提供任何提示。
UPDATE:
,如果你省略了中間的圖形完全反對,並直接設置ARGB數據到新創建的位圖,像這樣透明度可保留:
public Bitmap cropImage(Bitmap image, int x, int y, int width, int height) {
Bitmap result = new Bitmap(width, height);
int[] argbData = new int[width * height];
image.getARGB(argbData, 0, width, x, y, width, height);
result.setARGB(argbData, 0, width, 0, 0, width, height);
return result;
}
顯然沒有辦法返回一個裁剪後的圖像(從大圖),同時保持透明度。我通過將圖形上下文傳遞到我的方法中,並從較大的圖像中直接將一個子集繪製到圖形上下文中來解決這個問題 - 這樣至少保留了透明度。 – Levon 2010-09-24 19:38:28