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

时间:2012-03-17 04:36:53

标签: 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的图像?

4 个答案:

答案 0 :(得分:6)

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

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

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

有关详细信息,请参阅this blog

答案 1 :(得分:2)

答案 2 :(得分:2)

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);

答案 3 :(得分:0)

如果要裁剪任何形状的图像或仅选择部分 你可以使用现成的open source library