在J2ME中实现图片的反转效果(包括垂直和水平)
作者:陈跃峰
出自:http://blog.csdn.net/mailbomb
在J2ME编程中,为了最大限度的节约空间,有些时候需要自己来实现图形的反转,这里简单介绍一下实现图形反转的一些技巧。
图象的反转其实就是按照一定的规律,将图片中的每个像素点进行重新的排列。反转是进行像素点重新排列中简单的一种。
水平反转的原理就是把图片中的每一列都进行处理,而垂直反转则是对于图片中的每行进行重新的处理,下面是一个简单的示例代码。其中将反转的功能封装成了具体的方法,具体代码如下:
package imageconvert;
import javax.microedition.lcdui.*;
/**
* 实现图片的水平和垂直反传,即对称变换
*
* @author 陈跃峰
* email:cqucyf@gmail.com
* @version 1.0
*/
public class ImageConvertCanvas extends Canvas {
/**图片对象*/
private Image img = null;
public ImageConvertCanvas() {
//导入图片
try{
img = Image.createImage("/res/pic/test.png");
}catch(Exception e){}
}
protected void paint(Graphics g) {
//绘制正常的图片
g.drawImage(img,30,40,Graphics.LEFT | Graphics.TOP);
//绘制水平反转的图片
hConvert(g,img,30,60);
//绘制垂直反转的图片
vConvert(g,img,30,80);
}
/**
* 水平反转,即左右对称
* @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中的应用。” 【标签】:“图片处理” “J2ME” “png” 在Java的移动开发领域,J2ME(Java 2 Micro Edition)是用于创建小型设备和嵌入式系统的平台。在J2ME应用中,图片处理是一项重要的功能,涉及到...
在本文中,我们将深入探讨如何使用Java 2 Micro Edition (J2ME) 实现类似Adobe Photoshop (PS)的图片处理效果,特别是在图片混合技术方面。J2ME是一种轻量级的Java平台,常用于开发移动设备上的应用程序。通过熟练...
在J2ME(Java 2 Micro Edition)平台上,开发移动应用程序时,有时我们需要处理图片,包括显示、缩放以及实现半透明效果。本篇将详细解释如何在J2ME中实现半透明图片以及图片的缩放功能。 首先,让我们探讨如何实现...
这种特效可以通过编程实现,让图片在屏幕上以一种不规则的方式移动,营造出一种动态的视觉效果。 实现图片抖动特效的关键在于对图片的位置进行动态调整。在Java J2ME中,我们通常会使用GIF89a或者PNG格式的图像资源...
本文将深入探讨如何在J2ME中实现这一功能,包括解决旋转过程中的关键问题和优化算法。 首先,我们需要了解基本的旋转算法。点的旋转是一个基础概念,当点P(x, y)绕原点旋转t角度,得到的新坐标P'(x', y')可以通过...
在IT行业中,J2ME(Java 2 Micro Edition)是一种专门用于开发移动设备和嵌入式系统的Java平台。它提供了一套精简的Java API,使得开发者能够在资源有限的设备上实现各种应用程序,包括游戏、多媒体应用等。在这个...
在Java Micro Edition (J2ME) 平台上开发移动应用时,由于资源限制,往往需要进行一些巧妙的设计来实现特定...在提供的压缩包文件"中文画布打字"中,可能包含了实现这一功能的源代码和资源文件,供开发者参考和学习。
在Java Micro Edition (J2ME) 平台上处理图像时,有时我们需要对图片进行...通过阅读提供的文档《J2ME插值算法实现图片的放大缩小方法.doc》,你可以找到详细的代码示例和实现细节,帮助你在实际项目中应用这些知识。
本文将详细介绍如何在J2ME程序中实现图像的颜色反转功能。 #### 实现原理 颜色反转是指将图像中的颜色进行180度反转,即将红、绿、蓝三通道的颜色值分别与最大值(通常是255)相减。这样可以创建出一种“负片”...
创建一个`Sprite`对象,设置其初始位置和图片,然后在`paint`方法中更新`Sprite`的位置和状态,以实现星星图片的动态展示。`Sprite`的使用大大简化了图形处理的复杂性,使得在有限的资源下也能实现丰富的动画效果。 ...
至于提供的"图片编辑器.exe"文件,这可能是该J2ME图片编辑器的桌面版本,用于在电脑上进行测试和开发,或者它是一个模拟器,让用户能在非J2ME设备上预览编辑效果。无论哪种情况,这个.exe文件对于理解J2ME图片编辑器...
在J2ME中,开发人员需要处理资源有限的环境,因此,提供中文输入功能是一个挑战,因为这需要在小型设备上实现复杂的字符编码和输入法。 本"J2ME中文输入Demo"旨在为开发者展示如何在J2ME环境中实现基本的中文输入...
在这个"j2me图片特效包及demo程序"中,我们主要关注的是如何在 J2ME 应用程序中处理和操作图像,实现各种视觉效果。下面我们将详细探讨这些知识点: 1. **图片加载**:在 J2ME 中,通常使用 ` javax.microedition....
文件“065-066 J2ME3D编程.ppt”很可能包含关于这些主题的详细讲解,包括实例代码和演示,这对于深入理解J2ME中的3D编程至关重要。学习这些内容将帮助开发者克服J2ME平台上的3D图形挑战,创造出引人入胜的移动游戏和...
在移动设备上实现多媒体功能是Java ME(J2ME)平台的一个重要应用领域,特别是对于音乐播放,歌词滚动效果能够极大地提升用户体验。本项目提供的源码着重展示了如何在J2ME环境中实现MP3歌曲的歌词同步滚动显示。下面...
综上所述,J2ME中的PNG图片处理主要包括加载、显示、缩放和基本操作。由于资源限制,我们需要采取各种策略来优化内存使用和提高性能。虽然J2ME本身对PNG的压缩支持有限,但可以通过其他手段如预压缩和适当的设计决策...
在这个J2ME实现的画图程序中,我们主要关注的是如何在移动设备上利用Java Micro Edition(J2ME)框架创建一个简单的画图应用。J2ME是Java平台的一个子集,专门用于嵌入式设备,如手机和PDA。在这个程序中,核心功能...
本文将深入探讨如何使用J2ME进行图片处理,包括缩放、裁剪、调整大小、镜像翻转、对比度和亮度调整、黑白效果、线条艺术以及粉笔画效果。我们将以`ImageUtil.java`为例,讲解源码中封装的类和方法。 首先,`...