?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

葡萄京棋牌app下載:在運行時將大圖分割為小圖片數組

?

本文先容若何在法度榜樣運行時將一個較大年夜的圖片瓜葡萄京棋牌app下載分為Image數組。實現此功能最緊張的便是應用Graphics的坐標變換和繪制圖片的功能。也便是應用translate()和drawImage()措施。

我們設計一個ImageUtil類,如下所示:

/**

* Copyright_2006, eric zhan

* Created on 2006-6-8

*/

package com.j2medev.image;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image;

public class ImageUtil {

public static Image[] splitImage(Image img, int rows, int cols) {

if(img == null)

return null;

Image[] result = new Image[rows * cols];

int w = img.getWidth()/cols;

int h = img.getHei葡萄京棋牌app下載ght()/rows;

for(int i = 0;i

靜態措施splitImage(Image img,int rows,int cols)把參數img指定的Image工具瓜分為rows行cols列的Image數組。這里我們把數組存儲為一維數組,當然您也可以存儲為二維數組。根據img的高度和寬度以及目標數組的行數和列數,可以謀略出每個小圖片的高度和寬度,并且每個圖片的高度和寬度應該是相等的。Graphics的translate(int x,int y)措施可以將graphics高低文的原點變換到(x,y),這樣隨后的繪畫動作都因此新的原點為準了。隨后我們調用drawImage()就可以把img的部分內容繪畫的新的Image中。輪回停止后,把Image數組返回。

下面編寫一個測試的MIDlet來看看效果,代碼如下:

/**

* Copyright_2006, eric zhan

* Created on 2006-6-8

*/

package com.j2medev.image;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image葡萄京棋牌app下載;

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

public class ImageMIDlet extends MIDlet {

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

}

protected void pauseApp() {

// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {

// TODO Auto-generated method stub

Display display = Display.getDisplay(this);

Image img = null;

try {

img = Image.createImage("/test.png")葡萄京棋牌app下載;

} catch (IOException ex) {

Form form = new Form("error");

form.append("error to load the img");

display.setCurrent(form);

return;

}

display.setCurrent(new ImageCanvas(img));

}

}

class ImageCanvas extends Canvas {

private Image img = null;

public ImageCanvas(Image _img) {

this.img = _img;

}

public void paint(Graphics g) {

int color = g.getColor();

g.setColor(0xFFFFFF);

g.fillRect(0, 0,葡萄京棋牌app下載 getWidth(), getHeight());

g.setColor(color);

if (img != null) {

// before split

g.drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);

// after

int distance = img.getHeight() + 6;

Image[] sprites = ImageUtil.splitImage(img, 3, 4);

if (sprites != null) {

for (int i = 0; i

籌備一個圖片test.png,即可運行。我們建議圖片的高度應該和行數成正比,圖片的寬度與列數成正比。為了顯示出瓜分的效果,這里把小圖片之間加了一點間距。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户