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

9 android crop bitmap image-processing android-image

我想从下面的图像裁剪红色部分,是否有任何简单的方法在Android中可以裁剪下面的图像.

我要裁剪的示例图像

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

Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100); 
Run Code Online (Sandbox Code Playgroud)

如果宽度和高度分辨率约为2MP,则此代码可以正常工作,但如果裁剪的部分超过3MP分辨率,则应用程序因OOM错误而崩溃.

在裁剪期间有没有办法处理超过3MP的图像?

Hit*_*tel 6

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

Matrix matrix = new Matrix();
matrix.postScale(0.5f, 0.5f);
Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100, matrix, true);
Run Code Online (Sandbox Code Playgroud)

上面的方法在裁剪之前做postScalling图像,这样你可以获得裁剪图像的最佳效果而不会出现OOM错误.

有关更多详细信息,请参阅此博客