我想裁剪图像而不会出现OutOfMemory
异常.
这意味着我有裁剪图像的x,y,宽度和高度,并希望裁剪原始图像而不将其带入内存.
是的,我知道这BitmapRegionDecoder
是个好主意,但也许裁剪的图像太大,无法将其带入记忆中.
ImageView
我希望将其保存在新文件中而不会丢失尺寸
这是一个例子
在这种情况下,裁剪的图像分辨率为20000x20000,下面的代码不能用于OOM:
BitmapRegionDecoder bitmapRegionDecoder = BitmapRegionDecoder.newInstance(inputStream, false); BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bitmap = bitmapRegionDecoder.decodeRegion(new Rect(width / 2 - 100, height / 2 - 100, width / 2 + 100, height / 2 + 100), options); mImageView.setImageBitmap(bitmap);
使用inSampleSize减少原始图片大小是好的,但我保存的结果不再是20000x20000.
如何裁剪25000x25000并将20000x20000部分图像保存在文件中?