为什么在UIImagePNGRepresentation之后图像尺寸会增加?

时间:2018-08-31 13:06:29

标签: ios uiimage uiimagepickercontroller uiimagejpegrepresentation uiimagepngrepresentation

我的iPhone照片应用程序中有图像文件。

我已通过空投将其带到了我的Macbook中,并检查了图像的大小= 1.9 MB

我将同一张图片保存到iPhone的“文件”应用程序中,并检查了图片大小= 1.9 MB

我通过UIImagePickerController

将同一张图片导入了我的应用
  • 使用UIImagePNGRepresentation并打印数据计数/字节计数= 15.8 MB
  • UIImageJPEGRepresentation与CompressionRatio 1.0一起使用,并打印数据计数/字节计数= 5.4 MB
  • 使用了UIImagePNGRepresentation并将其保存到本地(DocumentsDirectory)并检查了文件大小= 15.8 MB
  • UIImageJPEGRepresentation与CompressionRatio 1.0一起使用并将其保存到本地(DocumentsDirectory),并检查文件大小= 5.4 MB

现在,我的问题是,为什么UIImagePNGRepresentationUIImageJPEGRepresentation将文件大小增加到这么大?我什至将此图像上传到服务器,并且显然得到了更大的图像尺寸。我想将给定的图像以原始质量上传到我的服务器,但是我不想要这么大的图像(因为其在设备上的实际大小完全不同),是否还有其他方法可以防止原始图像的大小和质量两者?

1 个答案:

答案 0 :(得分:1)

让我们以WWDC 2018会话为例-416_ios_memory_deep_dive。如果您有590kb文件大小的图像,则图像的尺寸为2048像素x 1536像素。因此,此图像的总内存为10MB(2048像素x 1536像素x每个像素4字节)。有关更多详细信息,请观看此视频。 https://developer.apple.com/videos/play/wwdc2018/416/