Ios 为什么UIImagePngRespresentation返回的数据大于(10倍于)图像';s原始数据大小

Ios 为什么UIImagePngRespresentation返回的数据大于(10倍于)图像';s原始数据大小,ios,uiimage,sdwebimage,Ios,Uiimage,Sdwebimage,下载图像时,请使用sdwebimage,并在图像下载程序操作的-(void)URLSession:(NSURLSession*)会话任务:(NSURLSessionTask*)任务完成时打印错误:(NSError*)错误{ UIImage *image = [UIImage sd_imageWithData:self.imageData]; NSString *key = [[SDWebImageManager sharedManager] cacheKeyFor

下载图像时,请使用sdwebimage,并在图像下载程序操作的
-(void)URLSession:(NSURLSession*)会话任务:(NSURLSessionTask*)任务完成时打印错误:(NSError*)错误{

        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

原始数据长度是服务器中图像文件的确切文件大小,但当我使用这些原始数据创建图像,并使用UIImagePngResentation或UIImageJPEGResentation获取UIImage的NSData长度时,似乎png和jpg呈现(无压缩)原始数据越大,UIImage的大小就越大。这是怎么回事?

PNG文件

PNG格式是一种无损压缩文件格式,这使得它成为Web上常用的选择。PNG是以小文件大小存储线条图、文本和图标图形的良好选择

由于GIF压缩的专利限制,便携式网络图形是一种无损文件格式,旨在取代GIF格式。该项目取得了成功,我们现在可以完全访问该格式,该格式无专利,具有很好的压缩能力,并受到web浏览器的广泛支持。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只是失败。

那么为什么图像的png表示会比图像的原始数据大小大呢?JPEG和png使用完全不同的压缩方法。JPEG使用基于DCT的有损压缩方法,以牺牲质量为代价倾向于较小的文件大小。PNG优先考虑质量,并使用无损压缩算法。JPEG的文件大小可以通过在保存期间调整图像的质量百分比来减少,而PNG的文件大小不太容易调整,通常需要单独的程序来进一步压缩图像。检查-是否存在获取uiimage对象的原始数据内容长度的方法是什么?因为UIImagePNGRepresentation或UIImageJPEGRepresentation工作不正常