| 订阅 | 在线投稿
分享
 
 
 

MIDP2.0下处理Alpha通道产生半透明效果

来源:互联网  宽屏版  评论
2006-01-09 20:55:06

游戏中经常会用到半透明效果。但MIDP1.0年代似乎只有Nokia和LG两家的扩展API给出了可以处理Alpha通道的API。在MIDP2.0下,我们可以用Image类提供的方法得到一个图片的半透明版本。

try {

image=Image.createImage("/ken.png");//载入原图

}

catch (IOException e) { }

int[] argb=new int[image.getWidth()*image.getHeight()];//产生图片数据数组

image.getRGB(argb,0,image.getWidth(),0,0,image.getWidth(),image.getHeight());//得到ARGB矩阵

for(int i=0;i<argb.length;i++){

argb[i]&=0xa0ffffff;//设置每个象素的alpha通道值为a0,正确的做法是不改变那些原本alpha值就为0的透明象素点

}

image1=Image.createRGBImage(argb,image.getWidth(),image.getHeight(),true);//产生新的图片

运行的效果如下图:

MIDP2.0下处理Alpha通道产生半透明效果

这样就可以在游戏中实现半透明效果。加上你的天才创意,游戏一定会变的更炫目!

本程序在eclipse3.0+eclipseme0.6+WTK2.2下测试通过。

 
游戏中经常会用到半透明效果。但MIDP1.0年代似乎只有Nokia和LG两家的扩展API给出了可以处理Alpha通道的API。在MIDP2.0下,我们可以用Image类提供的方法得到一个图片的半透明版本。 try { image=Image.createImage("/ken.png");//载入原图 } catch (IOException e) { } int[] argb=new int[image.getWidth()*image.getHeight()];//产生图片数据数组 image.getRGB(argb,0,image.getWidth(),0,0,image.getWidth(),image.getHeight());//得到ARGB矩阵 for(int i=0;i<argb.length;i++){ argb[i]&=0xa0ffffff;//设置每个象素的alpha通道值为a0,正确的做法是不改变那些原本alpha值就为0的透明象素点 } image1=Image.createRGBImage(argb,image.getWidth(),image.getHeight(),true);//产生新的图片 运行的效果如下图: [url=http://www.wangchao.net.cn/bbsdetail_65592.html][img]http://60.191.15.10/fg/blog/alpha.jpg[/img][/url] 这样就可以在游戏中实现半透明效果。加上你的天才创意,游戏一定会变的更炫目! 本程序在eclipse3.0+eclipseme0.6+WTK2.2下测试通过。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有