以下算法可以把一张图片快速缩小到原大小的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);
分享到:
相关推荐
本文将深入探讨J2ME中如何应用插值算法来实现图片的放大和缩小。 首先,我们需要理解图像的基本概念。图像由像素组成,每个像素都有特定的颜色值。在放大图像时,单纯地扩大像素格子会显得粗糙,而插值算法则可以...
本文将详细讲解如何在J2ME中实现图片的放大和缩小功能。 首先,我们要理解J2ME中的图像处理基本概念。在J2ME中,`Image`类是用于表示图像对象的核心类。它不包含像素数据,而是通过`getRGB()`方法获取图像的像素...
在J2ME中,可以实现多种插值算法来提高放大或缩小的图像质量。例如,最近邻域法是最基础的算法,适用于快速缩放但质量不高。更高级的算法如双线性插值或三次卷积内插可以提供更好的视觉效果,但计算量会增加。 以下...
图片在J2me中的应用。” 【标签】:“图片处理” “J2ME” “png” 在Java的移动开发领域,J2ME(Java 2 Micro Edition)是用于创建小型设备和嵌入式系统的平台。在J2ME应用中,图片处理是一项重要的功能,涉及到...
本文将深入探讨如何在J2ME中实现这一功能,包括解决旋转过程中的关键问题和优化算法。 首先,我们需要了解基本的旋转算法。点的旋转是一个基础概念,当点P(x, y)绕原点旋转t角度,得到的新坐标P'(x', y')可以通过...
在Java Micro Edition (J2ME) 平台上开发移动应用时,由于资源限制,往往需要进行一些巧妙的设计来实现特定功能。"J2ME 画布实现中文输入"这一主题,就是针对在J2ME环境下如何创建一个自定义的中文输入系统进行探讨...
本篇将详细解释如何在J2ME中实现半透明图片以及图片的缩放功能。 首先,让我们探讨如何实现半透明图片。在J2ME中,半透明效果通常是通过修改图片的Alpha通道来实现的。Alpha通道负责控制颜色的透明度,0代表完全...
在实现中文输入时,这两个组件需要被适当地定制以处理中文字符的输入和显示。 2. **中文字符编码** 中文字符在计算机中通常以Unicode编码表示,这是一种包含世界上大多数语言字符的通用编码系统。在J2ME中,使用...
在J2ME中,振动功能通常通过设备的振动器服务实现,如果设备支持的话。开发者可以调用特定的API来启动和控制设备的振动,为用户提供触觉反馈。 总的来说,这个资源包涵盖了J2ME中的几个核心概念:图片处理、动态...
本程序实现了在J2ME中的备忘录的增加记录、删除记录、修改记录以及查询记录的功能。
`Display` 是J2ME中的屏幕管理器,它负责管理显示在设备上的所有屏幕。`DoodleCanvas` 是一个自定义的 `Canvas` 类,它将作为用户交互和绘图的界面。 `DoodleCanvas` 类继承自 `Canvas` 类,`Canvas` 是J2ME中提供...
在J2ME中处理图片时,我们还需要考虑性能问题,因为移动设备的资源有限。为了优化,可以采用以下策略: - **缓存处理结果**:如果图像处理效果是静态的,可以将处理后的图像缓存,避免重复计算。 - **预处理**:在...
3. **电子地图浏览**:在J2ME中实现地图应用,通常会用到JSR-179(Location API),它提供了获取地理位置、计算路线、显示地图图层的能力。开发者可以结合地图服务提供商(如Google Maps或OpenStreetMap)的API,为...
在J2ME中,UI(用户界面)的设计和实现对于提供良好的用户体验至关重要。本文将深入探讨J2ME中的高级UI设计技巧、框架和实践。 一、触摸屏操作 在现代移动设备中,触摸屏已经成为主流的交互方式。在J2ME中处理触摸...
本文将深入探讨如何在J2ME中处理和压缩PNG图片,通过实例代码帮助理解相关技术。 首先,PNG图片格式采用的是基于LZ77的无损压缩算法,这使得图像在压缩后仍能保持原始质量,但文件大小比未压缩的位图小很多。在J2ME...
### 在J2ME中实现DES加密 在J2ME环境下,DES加密可以通过CryptoLib包实现,这是一个开源的代码库,可在其官方网站上找到并下载。CryptoLib是专为J2ME平台优化的,与Sun Microsystems的J2SE兼容,可以直接在手机终端...
下面我们将深入探讨如何在J2ME中实现图片大小的调整。 首先,J2ME中的图像通常以`Image`对象的形式存在,我们可以使用` javax.microedition.lcdui.Image` 类来操作它们。由于J2ME的资源限制,直接对大图片进行操作...
在这个案例中,"J2ME中实现电话通讯录的源代码"项目运用了MVC(Model-View-Controller)设计模式,这是一种广泛用于软件工程的架构模式,特别适用于用户界面的开发。 **1. MVC设计模式详解:** - **Model(模型)**...
在J2ME中开发游戏,图像素材是至关重要的组成部分,它们赋予游戏视觉吸引力,使玩家沉浸其中。本压缩包提供了一组J2ME游戏的图片素材,可用于创建或增强J2ME游戏的视觉效果。 这些图片素材(.png格式)包括但不限于...