我试图制作一个图像文件的副本,首先将图像文件解码为位图,然后将其压缩回JPEG。副本(~3Mbs)大于原始文件(~2mbs)。有没有办法创建一个完全相同的副本?
Bitmap origBitmap = BitmapFactory.decodeFile(file);
FileOutputStream out = new FileOutputStream(file);
origBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
// this will give me a copy larger than the original image我知道我可以使用FileOutputStream和FileInputStream创建一个完全相同的副本。但我想对副本做一些修改,安卓不支持Javax.ImageIO。
FileOutputStream out = new FileOutputStream(file);
File old_file = new File(filePath);
FileInputStream input = new FileInputStream(old_file);
copyStream(input, out);
// this will give me an exact copy发布于 2014-08-26 05:51:48
JPEG是一种有损格式,这意味着每次使用该算法时都会丢失一些数据。你每次这样做的时候,即使是在高质量的设置下,它看起来也会更糟。
您的副本可能较大,因为您使用的质量设置为100。我敢打赌,原始文件是用较低质量的设置制作的-通常人们使用70到90之间的设置。
https://stackoverflow.com/questions/25494884
复制相似问题