为什么UIImagePNGRepresentation后图像大小会增加?

问题描述 投票:1回答:1

我在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将文件大小增加到那么大?我甚至将这张图片上传到了我的服务器,显然这个尺寸更大了。我想将原始质量上传给定的图像到我的服务器,但我不想要这么大尺寸的图像(因为它在设备上的实际尺寸完全不同),有没有其他方法可以防止原始图像尺寸和质量都?。

ios uiimage uiimagepickercontroller uiimagejpegrepresentation uiimagepngrepresentation
1个回答
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/

© www.soinside.com 2019 - 2024. All rights reserved.