我有一个非常大的图像文件(超过25MB),尺寸大约为10000x10000像素。我需要缩小此图像,文件不超过20MB。我知道
BitmapFactory.Options o = new BitmapFactory.Options();
o2.inSampleSize = <scale>;
BitmapFactory.decodeSomething(...);
但如果scale = 2
维度为5000x5000像素,那对我有好处,但是更多则android可以解码并导致OutOfMemory
。那么问题是如何将10000x10000像素图像文件缩小到5000x5000像素图像文件?有没有办法不使用Bitmap
来避免OutOfMemory
?
答案 0 :(得分:0)
首先,您需要获取有关图像的元数据,如果需要,可以在移动存储器中释放所需空间,创建位图和可绘制对象,然后转换A888中的原始图像或其他格式(占用较少内存的图像格式)获取所需图像的大小(高度和宽度)并在Draw-able类上绘制图像。有关更多信息,请点击此链接 http://voidcanvas.com/whatsapp-like-image-compression-in-android/ 它对我有用。根据要求更改图像大小和压缩格式。