快速业务通道

在J2ME中实现图片的翻转效果 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

在J2ME中实现图片的翻转效果

时间:2011-03-11 陈跃峰

图象的反转其实就是按照一定的规律,将图片中的每个像素点进行重新的排列。反转是进行像素点重新排列中简单的一种。水平反转的原理就是把图片中的每一列都进行处理,而垂直反转则是对于图片中的每行进行重新的处理,下面是一个简单的示例代码。其中将反转的功能封装成了具体的方法,具体代码如下:

/* * TestMIDlet.java * */ package imageconvert; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * * @author Administrator * @version */ public class TestMIDlet extends MIDlet { private Display display = null; private ImageConvertCanvas canvas = null; public void startApp() { display = Display.getDisplay(this); canvas = new ImageConvertCanvas(); display.setCurrent(canvas); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } package imageconvert; import javax.microedition.lcdui.*; /** * * 实现图片的水平和垂直反传,即对称变换 * @version 1.0 * */ public class ImageConvertCanvas extends Canvas { /**图片对象*/ private Image img = null; public ImageConvertCanvas() { //导入图片 try{ img = Image.createImage("/leaf.png"); }catch(Exception e){} } protected void paint(Graphics g) { int color = 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); } /** * * 水平反转,即左右对称 * * @param g Graphics 画笔 * * @param img Image 图片 * * @param x int 图片左上角的x坐标 * * @param y int 图片左上角的y坐标 * */ private void hConvert(Graphics g,Image img,int x,int y){ if(img == null){ return; } //获得图片大小 int w = img.getWidth(); int h = img.getHeight(); //绘制 for(int i = 0;i < w;i++){ //设置切割区域是1列 g.setClip(x + i,y,1,h); //绘制图片 g.drawImage(img,x - w + 2 * i,y,Graphics.LEFT | Graphics.TOP); } } /** * * 垂直反转,即上下对称 * * @param g Graphics 画笔 * * @param img Image 图片 * * @param x int 图片左上角的x坐标 * * @param y int 图片左上角的y坐标 * */ private void vConvert(Graphics g,Image img,int x,int y){ if(img == null){ return; } //获得图片大小 int w = img.getWidth(); int h = img.getHeight(); //绘制 for(int i = 0;i < h;i++){ //设置切割区域是1行 g.setClip(x,y + i,w,1); //绘制图片 g.drawImage(img,x,y - h + 2 * i,Graphics.LEFT | Graphics.TOP); } } }

运行效果如下所示:

在J2ME中实现图片的翻转效果 - 编程入门网

注:本文主要内容中摘自陈跃峰的blog,本人对绘图代码进行了简单修改。并提供了MIDlet和图片演示。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号