📄 imageutil.java
字号:
package com.gggeye.util;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
* 图像工具类, 提供的功能有:
* <p>1. scale -- 对图片进行放大,缩小</p>
* <p>2.
*
* @author wuhua
* <p><b>MSN gggeye@hotmail.com</b></p>
* <p><b>EMAIL gooogledev@gmail.com</b></p>
* 网站支持 <a href="http://www.3geye.net">3G视线--专业的手机开发网</a>
* 网站论坛 <a href="http://www.3geye.net/bbs">3G视线论坛--专业的手机开发网</a>
* wuhua的博客 <a href="http://wuhua.3geye.net">无花的博客</a>
*/
public final class ImageUtil {
/**
* 此方法是对图片进行放大,缩小,并为实现按比例进行,所以程序调用的时候,应该自行处理
* @param src -- 原图像
* @param targetWidth -- 目标图像宽度
* @param targetHeight -- 目标图像高度
* @return 返回一个放大,缩小后的图片对象
*/
public final static Image scale(Image src, int targetWidth, int targetHeight) {
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
Image tmp = Image.createImage(targetWidth, srcHeight);
Graphics g = tmp.getGraphics();
int delta = (srcWidth << 16) / targetWidth;
int pos = delta / 2;
for (int x = 0; x < targetWidth; x++) {
g.setClip(x, 0, 1, srcHeight);
g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
pos += delta;
}
Image dst = Image.createImage(targetWidth, targetHeight);
g = dst.getGraphics();
delta = (srcHeight << 16) / targetHeight;
pos = delta / 2;
for (int y = 0; y < targetHeight; y++) {
g.setClip(0, y, targetWidth, 1);
g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
pos += delta;
}
return dst;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -