|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
图像的反转实在就是依照必定的纪律,将图片中的每一个像素点举行从头的分列。反转是举行像素点从头分列中复杂的一种。程度反转的道理就是把图片中的每列都举行处置,而垂直反转则是关于图片中的每行举行从头的处置,上面是一个复杂的示例代码。个中将反转的功效封装成了详细的办法,详细代码以下:
/*
*TestMIDlet.java
*
*/
packageimageconvert;
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
/**
*
*@authorAdministrator
*@version
*/
publicclassTestMIDletextendsMIDlet{
privateDisplaydisplay=null;
privateImageConvertCanvascanvas=null;
publicvoidstartApp(){
display=Display.getDisplay(this);
canvas=newImageConvertCanvas();
display.setCurrent(canvas);
}
publicvoidpauseApp(){
}
publicvoiddestroyApp(booleanunconditional){
}
}
packageimageconvert;
importjavax.microedition.lcdui.*;
/**
*
*完成图片的程度和垂直反传,即对称变更
*@version1.0
*
*/
publicclassImageConvertCanvasextendsCanvas{
/**图片对象*/
privateImageimg=null;
publicImageConvertCanvas(){
//导进图片
try{
img=Image.createImage("/leaf.png");
}catch(Exceptione){}
}
protectedvoidpaint(Graphicsg){
intcolor=g.getColor();
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(color);
//绘制一般的图片
g.drawImage(img,0,0,Graphics.LEFT|Graphics.TOP);
//绘制程度反转的图片
hConvert(g,img,0,img.getHeight()+5);
//绘制垂直反转的图片
vConvert(g,img,0,img.getHeight()*2+10);
}
/**
*
*程度反转,即摆布对称
*
*@paramgGraphics画笔
*
*@paramimgImage图片
*
*@paramxint图片左上角的x坐标
*
*@paramyint图片左上角的y坐标
*
*/
privatevoidhConvert(Graphicsg,Imageimg,intx,inty){
if(img==null){
return;
}
//取得图片巨细
intw=img.getWidth();
inth=img.getHeight();
//绘制
for(inti=0;i<w;i++){
//设置切割地区是1列
g.setClip(x+i,y,1,h);
//绘制图片
g.drawImage(img,x-w+2*i,y,Graphics.LEFT|Graphics.TOP);
}
}
/**
*
*垂直反转,即高低对称
*
*@paramgGraphics画笔
*
*@paramimgImage图片
*
*@paramxint图片左上角的x坐标
*
*@paramyint图片左上角的y坐标
*
*/
privatevoidvConvert(Graphicsg,Imageimg,intx,inty){
if(img==null){
return;
}
//取得图片巨细
intw=img.getWidth();
inth=img.getHeight();
//绘制
for(inti=0;i<h;i++){
//设置切割地区是1行
g.setClip(x,y+i,w,1);
//绘制图片
g.drawImage(img,x,y-h+2*i,Graphics.LEFT|Graphics.TOP);
}
}
}
运转效果以下所示:
注:本文次要内容中摘自陈跃峰的blog,自己对画图代码举行了复杂修正。并供应了MIDlet和图片演示。
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。 |
|