Android如何将png格式图像转换为jpeg格式而不会丢失质量

时间:2015-09-02 03:55:08

标签: android image

我开发了一个应用程序,其中包括将图像上传到服务器的步骤。但是服务器只支持jpeg格式图像,所以我必须转换客户端用户选择或捕获的png格式图像。所以我使用了以下代码做这种图像格式转换:

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);

但有些图像会失去质量,与png格式相比,眼睛可以看到丢失。这种方法有一些错误吗?有没有一些好的方法可以在Android中进行png到jpeg转换而没有丢失质量?

1 个答案:

答案 0 :(得分:0)

JPEG是一种有损压缩格式,它会丢失数据。见这里的帖子:

Saving JPEG files in Android with no loss of pixel information

“压缩”背后的想法是减少文件大小,但总是需要权衡。您可以尝试增加PNG文件的大小然后进行“压缩” - 但是您可能需要将其缩小,然后返回到开始的位置。

注意:与其他一些格式相比,PNG不是“有损”并且是“压缩的”,例如位图。我最初假设压缩=有损,但有些格式被认为是“压缩”的,因为它们需要更少的存储空间而且没有丢失。例如,Zip是一种文件格式,它将更改文件数据组织以便以更少的空间存储它们而不会丢失。

这是与JPEG不同的压缩类型,它会改变信息以“压缩”文件,并将其存储在较小的文件中。这种类型的压缩根本不同。