我想从下面的图片裁剪红色部分,是否有任何简单的方法在Android中可以裁剪下面的图像。
我发现了许多SO问题,但都建议使用以下代码:
Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100);
如果宽度和宽度相同,此代码效果很好高度约为2MP分辨率,但如果裁剪的部分超过3MP分辨率,则应用程序因OOM错误而崩溃。
在裁剪期间有没有办法处理超过3MP的图像?
答案 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)
请参阅此链接http://www.londatiga.net/featured-articles/how-to-select-and-crop-image-on-android/,源代码位于此链接https://github.com/lorensiuswlt/AndroidImageCrop
答案 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