J2ME中对Image的缩放

发表于:2007-07-01来源:作者:点击数: 标签:
a sniplet from the article Taking Pictures with MMAPI http://developers.sun.com/techtopics/mobility/midp/articles/picture/ clapton_xp@hotmail.com 创建缩略图 MIDP2.0中可以对图片中的像素进行操作,在MIDP1.0中则不然。本例用Graphics.setClip()实
a sniplet from the article "Taking Pictures with MMAPI"

http://developers.sun.com/techtopics/mobility/midp/articles/picture/

clapton_xp@hotmail.com

创建缩略图

MIDP2.0中可以对图片中的像素进行操作,在MIDP1.0中则不然。本例用Graphics.setClip()实现每一次对一个像素进行绘制。

private Image createThumbnail(Image image) {

int sourceWidth = image.getWidth();

int sourceHeight = image.getHeight();



int thumbWidth = 64;

int thumbHeight = -1;



if (thumbHeight == -1)

thumbHeight = thumbWidth * sourceHeight / sourceWidth;



Image thumb = Image.createImage(thumbWidth, thumbHeight);

Graphics g = thumb.getGraphics();



for (int y = 0; y < thumbHeight; y++) {

for (int x = 0; x < thumbWidth; x++) {

g.setClip(x, y, 1, 1);

int dx = x * sourceWidth / thumbWidth;

int dy = y * sourceHeight / thumbHeight;

g.drawImage(image, x - dx, y - dy,

Graphics.LEFT | Graphics.TOP);

}

}



Image immutableThumb = Image.createImage(thumb);



return immutableThumb;

}

原文转自:http://www.ltesting.net