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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么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将文件大小增加到那么大?我甚至将这张图片上传到了我的服务器,显然这个尺寸更大了。我想将原始质量上传给定的图像到我的服务器,但我不想要这么大尺寸的图像(因为它在设备上的实际尺寸完全不同),有没有其他方法可以防止原始图像尺寸和质量都?。

答案

让我们从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/

以上是关于为什么UIImagePNGRepresentation后图像大小会增加?的主要内容,如果未能解决你的问题,请参考以下文章

什么是密钥哈希?为什么需要它?它是唯一的吗?为什么 Facebook 集成需要它

Redis 为什么面试都问我却不懂?因为它快吗?它为什么快?

CodeBlocks中这是为啥啊

为什么选择容器技术,又为什么选择了kubernetes?

Full GC为什么那么慢?为什么老年代垃圾回收效率比新生代低很多?为什么Minor gc速度比Major GC慢?

转载 JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要动静分离?