旋转图像后,如何以与旋转前相同的质量保存图像?

时间:2017-09-27 21:53:53

标签: android jpeg image-uploading android-bitmap image-compression

我需要将应用中的图片发送到服务器。然而,在我发送它之前,我需要对它进行一些修改,如旋转它。我的问题是在将它发送到服务器之前知道保存它的质量。我试过了

bitmap.compress(CompressFormat.JPEG, 100, fileoutputstream);

之前的文件大小: 1.5mb - 3 mb后的文件大小 :( 所以看起来文件现在比以前更大了,我不确定质量是否更好(因为图像已经被压缩)。现在只是做

bitmap.compress(CompressFormat.JPEG, 80, fileoutputstream);

之前的文件大小: 1.5mb - 0.3 mb后的文件大小

如果质量达到80,那么我的图像质量将比之前低。 那么当用户拍照并将其保存到图库时,默认情况下Android会使用什么质量?如何以与以前相同的质量保存图像,而不会丢失任何内容?

对于像instagram / 500px这样的应用,我们可以在将图片发送到服务器之前设置什么是可接受的图像质量? 50? 75? 80? 100?

2 个答案:

答案 0 :(得分:0)

每次保存JPEG都会给您带来一些质量损失。即使您使用“100%质量”,也会发生一些有损压缩。

  

如何以与以前相同的质量保存图像,而不会丢失   什么?

如果没有质量损失,您无法保存jpeg。只有非常专业的软件可以在没有重新压缩的情况下做一些技巧,但旋转90度的功能非常有限。

  

如此确定,质量为80,我的质量将比以前低

     

那么Android默认使用什么质量

JPEG标准根本不定义百分比质量。如果在一个程序中使用“80%”,则在其他程序中可以与“50%”或“90%”相同。这只是某些编码器的数字。

答案 1 :(得分:0)

JPEG和PNG都是压缩模式。因此,它无法确保100%的质量。

对于JPEG,在我的情况下,我经常使用90%的高质量,使用70%的低质量。在opencv中,对于CV_IMWRITE_JPEG_QUALITY,默认值为90%质量。

希望这有用。