下面是一个示例代码,用于在Android中进行图像裁剪,并确保输出的图像的宽度和高度始终为160像素:
import android.graphics.Bitmap;
public class ImageUtils {
public static Bitmap cropImage(Bitmap source) {
int outputSize = 160;
int width = source.getWidth();
int height = source.getHeight();
int x = (width - outputSize) / 2;
int y = (height - outputSize) / 2;
// 创建一个新的Bitmap对象,用于存储裁剪后的图像
Bitmap croppedBitmap = Bitmap.createBitmap(outputSize, outputSize, Bitmap.Config.ARGB_8888);
// 将源图像的指定区域复制到新的Bitmap对象中
for (int i = 0; i < outputSize; i++) {
for (int j = 0; j < outputSize; j++) {
croppedBitmap.setPixel(i, j, source.getPixel(x + i, y + j));
}
}
return croppedBitmap;
}
}
使用示例:
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original_image);
Bitmap croppedBitmap = ImageUtils.cropImage(originalBitmap);
// 使用裁剪后的图像进行其他操作
imageView.setImageBitmap(croppedBitmap);
这个示例中,我们首先计算裁剪区域的起始坐标(x和y),然后使用Bitmap.createBitmap()
方法创建一个新的Bitmap对象来存储裁剪后的图像。接下来,我们使用两个嵌套循环遍历裁剪区域,并使用Bitmap.getPixel()
和Bitmap.setPixel()
方法将每个像素从源图像复制到新的Bitmap对象中。最后,返回裁剪后的Bitmap对象。