初识Doja(对图片的操作)

如要转载请注明出处    http://blog.csdn.net/dl_hum/

制作游戏最根本的事情就是对游戏图片的各种操作,在这里我向大家介绍一下有关
Doja里对图片的操作。

 

Doja中所支持的图片格式为gifjpg两种,当不论是对图像的执行速度,还是咱用内存的大小,gif格式的图片都要比jpg格式的图片略胜一筹,而且Doja还至此gif格式的透明效果。

 

首先,我们来看一下Doja中的Image(com.nttdocomo.ui.Image)。在这个类中一共定义了五个可用方法,他们分别是:


·
public static Image createImage(int width, int height)

新建一个指定宽度和高度的Image类,并且用画板的背景色来填充此图像的像素。


·
public static Image createImage(int width, int height, int[] data, int off)

使用指定的RGB颜色数组创建一个Image类。


·
public int getWidth()public int get getHeight()

获得图像的宽度和高度。


·
public void public Graphics getGraphics()

获得Image实例的图形上下文,可以通过此方法在该图像上进行绘制。

 

另外,应用程序不可以对Image类直接进行实例化,而是通过如下的方法来获得图像句柄(我想这样叫会更形象些):

 

MediaImage mi = MediaManager.getImage(myImage);

try

{

       mi.use();

}

catch(ConnectionException ce){}

Image img = mi.getImage();

 

获得了图像的句柄后,我们就可以对图像进行操作了,包括对图像的显示,缩放,旋转……。

下面的程序实现了对图像进行顺时针90度的旋转并在画板上进行显示的程序:

 

// ImageTest.java

import com.nttdocomo.ui.IApplication;

 

public class ImageTest extends IApplication

{

public void start()

{

              Display.setCurrent(new MyCanvas());

              System.out.println("Start IApplication!");

}

}

 

// MyCanvas.java

import com.nttdocomo.ui.*;

import com.nttdocomo.io.*;

 

public class MyCanvas extends Canvas

{

       public void paint(Graphics g)      

       {

              MediaImage mi = MediaManager.getImage(“ImageName.gif”);

try

{

       mi.use();

}

catch(ConnectionException ce){}

Image img = mi.getImage();

      

       g.setFlipMode(Graphics.FLIP_ROTATE_RIGHT);

       g.drawImage(img, 0, 0);

}

}

 

还有一点需要说明的是Doja对于绘制图像局部的方法
drawImage(Image image, int dx, int dy, int sx, int sy, int width, int height)
支持的并不是很好,如果你定义的图像过大,那么同样是绘制一个32X32pixel的图像,它的速度要慢上许多倍,当然你定义的原图像越大,执行的时间也就越长。


如要转载请注明出处    http://blog.csdn.net/dl_hum/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值