在Android上调整大位图文件的大小以缩放输出文件
我在文件中有一个大的位图(例如3888x2592)。现在,我想将该位图的大小调整为800x533并将其保存到另一个文件中。我通常会通过调用Bitmap.createBitmapmethod 来缩放位图,但是它需要源位图作为第一个参数,我无法提供,因为将原始图像加载到Bitmap对象中当然会超出内存(例如,请参见此处)。 我也无法读取与位图,例如BitmapFactory.decodeFile(file, options),提供了BitmapFactory.Options.inSampleSize,因为我想将它调整到一个确切的宽度和高度。使用inSampleSize会将位图的大小调整为972x648(如果使用inSampleSize=4)或778x518(如果使用inSampleSize=5,则甚至不是2的幂)。 我还想避免在第一步中使用inSampleSize读取图像,例如,在972x648上读取图像,然后在第二步中将其尺寸调整为恰好为800x533,因为与直接调整原始图像的尺寸相比,其质量很差。 总结一下我的问题:是否可以读取10MP或更大的大图像文件并将其保存到新的图像文件中,并调整大小为特定的新宽度和高度,而不会出现OutOfMemory异常? 我还尝试BitmapFactory.decodeFile(file, options)将Options.outHeight和Options.outWidth值手动设置为800和533,但这种方式不起作用。