加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

在J2ME中达成高效高质缩小图片

发布时间:2021-11-22 10:10:42 所属栏目:教程 来源:互联网
导读:以下算法可以把一张图片快速缩小到原大小的1/4,即长宽都为原来的一半,且因为使用邻域组合的算法(即从原图4个像素累加再4等分得到新图上的一个像素),效果非常好。 虽然不能实现任意比例放缩,但以下算法短小精悍效率高,可用于一些特定场合,比如:显示图
以下算法可以把一张图片快速缩小到原大小的1/4,即长宽都为原来的一半,且因为使用邻域组合的算法(即从原图4个像素累加再4等分得到新图上的一个像素),效果非常好。
 
虽然不能实现任意比例放缩,但以下算法短小精悍效率高,可用于一些特定场合,比如:显示图片的缩略图等。
 
int w1 = img1.getWidth(), h1 = img1.getHeight(), w2 = w1 >>> 1, h2 = h1 >>> 1;
int[] rgb1 = new int[w1 * h1];
img1.getRGB(rgb1, 0, w1, 0, 0, w1, h1);
int[] rgb2 = new int[w2 * h2];
int i1, j1, i2, j2, n;
for (j2 = j1 = 0, n = w2 * h2; j2 < n; j2 += w2, j1 += 2 * w1) {
    for (i2 = i1 = 0; i2 < w2; i2++, i1 += 2) {
        int p1 = rgb1[j1 + i1], p2 = rgb1[j1 + i1 + 1], p3 = rgb1[j1 + w1 + i1], p4 = rgb1[j1 + w1 + i1 + 1];
        rgb2[j2 + i2] = ((p1 & 0x00FCFCFC) >>> 2) + ((p2 & 0x00FCFCFC) >>> 2) + ((p3 & 0x00FCFCFC) >>> 2) + ((p4 & 0x00FCFCFC) >>> 2);
    }
}
Image img2 = Image.createRGBImage(rgb2, w2, h2, false); 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读