我试图通过调整其长度和宽度来缩小图像的大小,但它保持相同的大小(兆字节),有时甚至更大,即使它只有一半大.
String compressPath = Environment.getExternalStorageDirectory()+"/test2.jpg";
FileInputStream in = new FileInputStream(path);
Bitmap fullSizeBitmap = BitmapFactory.decodeStream(in);
Bitmap resized = Bitmap.createScaledBitmap(
fullSizeBitmap,
(int)(fullSizeBitmap.getWidth()*0.5),
(int)(fullSizeBitmap.getHeight()*0.5),
true
);
FileOutputStream mOutputStream = new FileOutputStream(compressPath);
resized.compress(Bitmap.CompressFormat.PNG, 100, mOutputStream);
Run Code Online (Sandbox Code Playgroud)
有什么问题?我必须降低质量吗?
Per Bitmap的Android文档:
质量提示压缩机,0-100.0表示压缩小尺寸,100表示压缩以获得最高质量.某些格式,如无损的PNG,将忽略质量设置
您的原始输入是JPG,但您将其输出到PNG.由于JPG将始终具有引入工件的质量下降,因此在转换时使生成的PNG文件更大.尝试将其保存为JPG,而不是80-100质量.
此外,在我的测试中,压缩到PNG所需的时间比压缩到JPG多2到5倍,因为PNG压缩是在软件中完成的,JPG是在硬件中完成的.因此对于大多数图像来说,压缩到JPG可能更好.
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |