/***
*创建透明图片方法
* @param originalImg -- 源图象
* @param alphaColor -- 需要透明的颜色
* @return -- 透明后的图片对象
*/
public static Image createAlphaImage(Image originalImg, int alphaColor) {
short w = (short) originalImg.getWidth();
short h = (short) originalImg.getHeight();
int[] imgData = new int[w * h];
//getRGB(int[] rgbData,int offset,int scanlength,int x,int y,int width,int height)
//方法获取象素颜色
originalImg.getRGB(imgData, 0, w, 0, 0, w, h);
/*
* <透明处理>
* 上面程序完成了对自定义图片的像素颜色的提取,在J2ME中的Image是这样规定的,如果这是一个
* 不可变图片,取得的每一个像素颜色是一个int类型的值,如果其高位是00,也就是颜色为
* 0x00RRGGBB的时候,这个像素就是完全透明的,如果是0xAARRGGBB,其中AA表示透明度,
* 这样的颜色表示半透明,现在我们取得了自定义的可变图片的像素颜色值,接下来,我们需要
* 创建不可变图片,并且要把白色的背景设置为完全透明的。将取得的保存在数组中的背景颜色的
* 高位值设置为00
*/
for (int i = 0; i < imgData.length; i++) {
if ( (imgData[i] & alphaColor) == alphaColor) {
imgData[i] = imgData[i] & alphaColor;
}
}
return Image.createRGBImage(imgData, w, h, true);
}