站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题[转]J2ME中对Image的缩放

[转]J2ME中对Image的缩放

摘要: [转]J2ME中对Image的缩放

a sniplet from the article "Taking Pictures with MMAPI"<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

clapton_xp@hotmail.com

创建缩略图

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

<table class=MsoNormalTable style="BACKGROUND: #e7e7e7; WIDTH: 100%; mso-cellspacing: 0cm; mso-padding-alt: 7.5pt 7.5pt 7.5pt 7.5pt" cellSpacing=0 cellPadding=0 width="100%" border=0> <tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes"> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 7.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 7.5pt; PADDING-BOTTOM: 7.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 7.5pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">

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;

}

</td></tr></table>

↑返回目录
前一篇: 用于 J2ME 的 Web 服务 API
后一篇: J2ME 通讯录代码