【J2ME笔记】关于J2ME Image图片指定颜色透明化
程序员文章站
2022-04-09 10:51:33
...
做雷霆战机的时候不知道从哪里看到错误的转换算法代码,图片透明的过头了,不需要透明化的颜色也透明了,学习了JAVA位移操作后发现是算法有bug。
原代码:
public static Image createAlphaImage(Image img, int alphaColor) { int w = img.getWidth(); int h = img.getHeight(); int[] imgData = new int[w * h]; img.getRGB(imgData, 0, w, 0, 0, w, h); 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); }
for 循环里面应该是:
if ((imgData[i] & 0xFFFFFF) == alphaColor) { imgData[i] = imgData[i] & alphaColor; }
这样就对了。
如果alphaColor是全透明的话,直接imgData[i] = alphaColor;就行了。
学习到了java位移操作~~
上一篇: 9688雷霆战机图片和音乐提取
下一篇: 大学学程序方面的建议与自身体验历程