为什么在 UIImagePNGRepresentation 之后图像大小会增加?
Why image size get increased after UIImagePNGRepresentation?
我的 iphone 照片应用程序中有图像文件。
我已经通过空投将它带到我的 macbook 上并检查了图像大小 = 1.9 MB
我将相同的图像保存到 iphone 的文件应用程序并检查了那里的图像大小 = 1.9 MB
我已通过UIImagePickerController
、
将相同的图像拍摄到我的应用程序中
- 使用了
UIImagePNGRepresentation
并打印了数据 count/byte count = 15.8 MB
- 使用
UIImageJPEGRepresentation
和 compressionRatio 1.0 并打印数据 count/byte count = 5.4 MB
- 使用
UIImagePNGRepresentation
并将其保存到本地(DocumentsDirectory)并检查文件大小 = 15.8 MB
- 使用
UIImageJPEGRepresentation
和 compressionRatio 1.0 并将其保存到本地(DocumentsDirectory)并检查文件大小 = 5.4 MB
现在,我的问题是,为什么 UIImagePNGRepresentation
或 UIImageJPEGRepresentation
将文件大小增加到那么大?。我什至将这张图片上传到我的服务器,显然得到了更大的图片尺寸。我想以原始质量将给定图像上传到我的服务器,但我不想要这么大的图像(因为它在设备上的实际大小完全不同),有没有其他方法可以防止原始图像大小和质量两者都有?
让我们以 WWDC 2018 session - 416_ios_memory_deep_dive 中的这个例子为例。如果您有 590kb 文件大小的图像,则图像的尺寸为 2048 像素 x 1536 像素。所以这个图像的总内存是 10MB(2048 像素 x 1536 像素 x 4 字节/像素)更多细节你可以看看这个视频。 https://developer.apple.com/videos/play/wwdc2018/416/
我的 iphone 照片应用程序中有图像文件。
我已经通过空投将它带到我的 macbook 上并检查了图像大小 = 1.9 MB
我将相同的图像保存到 iphone 的文件应用程序并检查了那里的图像大小 = 1.9 MB
我已通过UIImagePickerController
、
- 使用了
UIImagePNGRepresentation
并打印了数据 count/byte count = 15.8 MB - 使用
UIImageJPEGRepresentation
和 compressionRatio 1.0 并打印数据 count/byte count = 5.4 MB - 使用
UIImagePNGRepresentation
并将其保存到本地(DocumentsDirectory)并检查文件大小 = 15.8 MB - 使用
UIImageJPEGRepresentation
和 compressionRatio 1.0 并将其保存到本地(DocumentsDirectory)并检查文件大小 = 5.4 MB
现在,我的问题是,为什么 UIImagePNGRepresentation
或 UIImageJPEGRepresentation
将文件大小增加到那么大?。我什至将这张图片上传到我的服务器,显然得到了更大的图片尺寸。我想以原始质量将给定图像上传到我的服务器,但我不想要这么大的图像(因为它在设备上的实际大小完全不同),有没有其他方法可以防止原始图像大小和质量两者都有?
让我们以 WWDC 2018 session - 416_ios_memory_deep_dive 中的这个例子为例。如果您有 590kb 文件大小的图像,则图像的尺寸为 2048 像素 x 1536 像素。所以这个图像的总内存是 10MB(2048 像素 x 1536 像素 x 4 字节/像素)更多细节你可以看看这个视频。 https://developer.apple.com/videos/play/wwdc2018/416/