MIDP2.0中对图片象素级处理(2)
2008-02-23 09:18:14来源:互联网 阅读 ()
上次我们说到了怎么把一个图片处理成一个半透明的效果,下面是一个图片从透明到不透明的的变化效果
import Java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
* @author 刘军
* @version 1.0
*/
public class TCanvas extends Canvas implements Runnable{
Image image;//要处理的图片
int argb[];
int a= 0;//把象素的透明度初始值设置为0,然后在线程中不断地增加这个值
public TCanvas() {
super();
try {
image = Image.createImage("/test.png");//导入图片
} catch (IOException e) {
e.printStackTrace();
}
argb = new int[image.getWidth()*image.getHeight()];
image.getRGB(argb,0,image.getWidth(),0,0,image.getWidth(),image.getHeight());//获得图片的ARGB值
int temp;
for(int i=0;i<argb.length;i )
{
argb[i]=(a<<24) | (argb[i] & 0x00FFFFFF);// 修改最高2位的值
}
Thread t = new Thread(this);
t.start();
}
protected void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0);
g.drawImage(image,0,0,Graphics.TOP|Graphics.LEFT);
g.drawRGB(argb,0,image.getWidth(),0,100,image.getWidth(),image.getHeight(),true);// 画象素数组
g.drawString(a "",10,90,Graphics.TOP|Graphics.LEFT);
}
public void run()
{
while(a<256)
{
//改变象素内容
for(int i=0;i<argb.length;i )
{
argb[i]=(a<<24) | (argb[i] & 0x00FFFFFF);// 修改最高2位的值
}
repaint();//重绘屏幕
a ;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
上一篇: MIDP2.0中对图片象素级处理(3)
下一篇: generator中使用increment经验总结(hibernate)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash