android - 在android中裁剪图像的特定部分

标签 android image-processing bitmap crop android-image

我想裁剪下图中的红色部分,android中有没有简单的方法可以裁剪下图。

Sample Image that i want to crop

我发现了很多 SO 问题,但都建议使用以下代码:

Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100); 

如果宽度和高度约为 2MP 分辨率,此代码运行良好,但如果裁剪部分的分辨率超过 3MP,则应用程序会因 OOM 错误而崩溃。

有什么方法可以在裁剪过程中处理超过 3MP 的图像吗?

最佳答案

您可以使用以下代码来解决您的问题。

Matrix matrix = new Matrix();
matrix.postScale(0.5f, 0.5f);
Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100, matrix, true);

以上方法在裁剪之前对图像进行后缩放,因此您可以在裁剪后的图像上获得最佳效果而不会出现 OOM 错误。

更多详情可以引用this blog

关于android - 在android中裁剪图像的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747295/

相关文章:

java - 如何使用共享首选项修复显示值?

java - 在保持尺寸的同时移动图像

java - 使用Buffered Image写入RGB图像

ios - 如何从 3 个 8 位灰度图像创建 RGB CIImage?

image - 单色位图

android - Osmdroid:如何从我自己的位图(图 block )创建和加载 map ?

java - 如何确定用户是否触摸了我的位图?

android - 为什么我在 Jetpack Compose 中收到 "Optional Modifier parameter should have a default value of Modifier"警告?

java - 如何从 fragment 访问 Activity 的 ImageView ?

Android BLE 连接和断开快速读取 1 个特征。一些BLE设备在快速连接断开后停止广播