在Android中裁剪图像的特定部分
image-processing
5
0

我想从后续图像中裁剪红色部分,android中是否有任何简单的方法可以裁剪后续图像。

我想要裁剪的样本图像

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

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

如果宽度和高度大约为2MP,则此代码可以很好地工作,但是如果裁剪部分的分辨率大于3MP,则应用程序因OOM错误而崩溃。

在裁切期间,有什么方法可以处理超过3MP的图像?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

1-更改您的图像视图的位图

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

2使用位图裁剪所需的内容

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

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

4-在图像视图中再次预览位图

imageView.setImageBitmap(croppedBmp);
收藏
评论

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

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

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

有关更多详细信息,您可以参考此博客

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号