• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 为什么 UIImagePNGRepresentation 返回的数据大于(10 倍于)图像的原始数据大小

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:32:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

当我下载图像时使用 sdwebimage,并在图像下载器操作的 中打印 - (void)URLSessionNSURLSession *)session taskNSURLSessionTask *)task didCompleteWithErrorNSError *)error {

        UIImage *image = [UIImage sd_imageWithData:self.imageData];
        NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:self.request.URL];
        image = [self scaledImageForKey:key image:image];
        NSLog(@"didCompleteWithError:%@ data lenght:%ld png::%ld,jpg:%ld",self.request.URL,[self.imageData length],[UIImagePNGRepresentation(image) length],[UIImageJPEGRepresentation(image, 1) length]);

日志证明了这一点

data lenght:163480 png::202498,jpg:131774

原始数据长度是服务器中图像文件的确切文件大小,但是当我使用这些原始数据创建图像并使用 UIImagePNGRepresentation 或 UIImageJPEGRepresentation 获取 UIImage 的 NSData 长度时,似乎 png 和 jpg UIImage 的呈现(无压缩)会比原始数据更大。是什么原因造成的?



Best Answer-推荐答案


PNG 文件

PNG 格式是一种无损压缩文件格式,这使其成为在 Web 上使用的常见选择。 PNG 非常适合以小文件大小存储线条图、文本和标志性图形。

由于 GIF 压缩的专利限制,Portable Network Graphics 是一种无损文件格式,旨在取代 GIF 格式。该项目取得了成功,我们现在可以完全访问该格式,该格式没有专利,压缩率很高,并且受到网络浏览器的广泛支持。 PNG 文件主要用于透明图像、单色图像和带有硬线的图像,如文本。 PNG文件有两个版本:8位PNG(称为PNG-8)和24位PNG(称为PNG-24)。 PNG-8 被限制为 256 种索引颜色,而 PNG-24 有数百万种颜色。

JPEG 文件

联合摄影专家组创建了一种文件格式,创造性地命名为 JPEG\ˈjā-ˌpeg\,用于处理复杂色彩的摄影图像。将文件另存为 JPEG 时,用户可以选择质量还是压缩。更多的压缩会导致更小的文件大小,但您会损失质量。显然,较少的压缩会导致较大的文件大小,但也会产生更高质量的图像。 JPEG 压缩的好处在于,您通常可以找到看起来不错且文件大小较小的平衡点。不幸的是,JPEG 文件没有透明度。此外,文件格式是有损的,这意味着每次压缩时都会丢失一些数据。如果由于某种原因多次重新保存同一张图像,图像质量可能会降低。

JPG 格式是一种有损压缩文件格式。这对于以比 BMP 更小的尺寸存储照片非常有用。 JPG 是在 Web 上使用的常见选择,因为它是经过压缩的。为了以较小的文件大小存储线条图、文本和标志性图形,GIF 或 PNG 是更好的选择,因为它们是无损的。

JPEG 用于照片和逼真的图像。 PNG适用于线条艺术、文字较多的图像和颜色较少的图像。 GIF 只是失败了。

关于ios - 为什么 UIImagePNGRepresentation 返回的数据大于(10 倍于)图像的原始数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43535295/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap