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

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

示例图像,我想裁剪

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

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

如果宽度和高度都在200万左右的分辨率下,这个代码工作得很好,但是如果这个裁剪的部分超过300万分辨率,那么应用程序就会碰到OOM错误。

有什么办法处理图像超过3MP在裁剪?

Solutions Collecting From Web of "在android中裁剪图像的特定部分"

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

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

以上方法在裁剪之前先对图像进行缩放,这样就可以得到裁剪后图像的最佳效果而不会出现OOM错误。

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

1-改变你的imageview的位图

 final Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.img); 

2,使用你的位图来裁剪你想要的东西

 Bitmap croppedBmp = Bitmap.createBitmap(bitmap, x, y , width , height); 

3 – 从顶部和左侧注意x,y

4-在你的imageview中再次预览你的位图

 imageView.setImageBitmap(croppedBmp); 

如果你想裁剪图像的任何形状或只有选定的部分,那么你可以使用现成的开源库