当前位置:  开发笔记 > 编程语言 > 正文

裁剪图像没有OutOfMemory - Android

如何解决《裁剪图像没有OutOfMemory-Android》经验,为你挑选了0个好方法。

我想裁剪图像而不会出现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部分图像保存在文件中?

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有