欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS開發(fā)壓縮后圖片模糊問題解決

 更新時間:2022年07月26日 09:11:58   作者:公眾號iOS逆向  
這篇文章主要為大家介紹了IOS開發(fā)壓縮后圖片模糊問題解決實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

壓縮原理:找出那些重復出現(xiàn)的字符串,然后用更短的符號代替,達到縮短字符串的目的。

比如,一篇文章大量使用"#公眾號::iOS逆向"這個詞語,我們用"iOS"代替,就縮短了6個字符,如果用"i"代替,就縮短了8個字符。

事實上,只要保證對應關系,可以用任意字符代替那些重復出現(xiàn)的字符串。

本質上,所謂"壓縮"就是找出文件內容的概率分布,將那些出現(xiàn)概率高的部分代替成更短的形式。

所以,內容越是重復的文件,就可以壓縮地越小。

比如,"ABABABABABABAB"可以壓縮成"7AB"。

I 圖片壓縮的兩種方式

  • 質量壓縮:即損失圖片的質量為代價,大小(長寬尺寸)不變;
          UIImageJPEGRepresentation(image, 0.0);//JPEG
     NSData * imageData = UIImagePNGRepresentation(image);
`
//推薦使用png 因為`PNG:0x89 image/png ,壓縮比沒有 JPG 高,但是無損壓縮,解壓縮性能高,蘋果推薦的圖像格式!
  • 像素壓縮(比例壓縮):通過減少長寬方向的像素數(shù)量;
          [sourceImage drawInRect:CGRectMake(0,0,targetWidth, targetHeight)] ;

本文的壓縮方案:質量壓縮(0.5) 結合比例壓縮(1028):

1、質量壓縮的比例(質量壓縮使用系統(tǒng)APIUIImageJPEGRepresentation) 2、比例壓縮使用:drawInRect

II、 解決壓縮之后圖片模糊的問題

模糊的問題的大部分原因:使用第三方框架,(比如QMUIKit),在選擇相冊預覽的時候,就把圖片壓縮了很模糊了。

應用場景:針對協(xié)議類型這種大圖

2.1、如果是拍照,可以壓縮一下分辨率,否則上傳很慢

不用使用預覽圖進行上傳

//    [self imgUpLoad:imageAsset.previewImage Max:1 Index:1];
    [self imgUpLoad:imageAsset.originImage Max:1 Index:1];

如果是拍照,可以壓縮一下分辨率,否則上傳很慢

    return  [self imageCompressForSize:image targetSize:size];

拍照壓縮分辨率的例子

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
    //當選擇的類型是圖片
    if ([type isEqualToString:@"public.image"])
    {
        UIImage *image1 = [info objectForKey:UIImagePickerControllerOriginalImage];
        image1 = [ControlManager image:image1 scaleToSize:CGSizeMake(1000, 1200)];// 壓縮分辨率 便于上傳
        [picker dismissViewControllerAnimated:YES completion:nil];
        [SVProgressHUD showWithStatus:@"上傳中.." maskType:SVProgressHUDMaskTypeGradient];
        [self imgUpLoad:image1 Max:1 Index:1];
    }
}

2.2、 質量壓縮(0.5) 結合比例壓縮(1028)

用法

        NSData * imageData = UIImageJPEGRepresentation( [image compressWithTargetPixel:1028], k_UIImageJPEGRepresentationcompressionQuality);

質量壓縮的比例

(質量壓縮使用系統(tǒng)APIUIImageJPEGRepresentation

#define k_UIImageJPEGRepresentationcompressionQuality 0.5

比例壓縮的代碼

- (UIImage *)compressWithTargetPixel:(NSUInteger)targetPx {
}

III 針對業(yè)務場景選擇圖片格式

3.1 如何區(qū)分不同格式的圖像的

  • 根據(jù)圖像數(shù)據(jù)第一個字節(jié)來判斷的!

 // NSData+ImageContentType.m    + (NSString *)sd_contentTypeForImageData:

 PNG:0x89 image/png ,壓縮比沒有 JPG 高,但是無損壓縮,解壓縮性能高,蘋果推薦的圖像格式!

 JPG:0xFF image/jpeg,壓縮比最高的一種圖片格式,有損壓縮!最多使用的場景,照相機!解壓縮的性能不好!

 GIF:0x47 image/gif ,序列楨動圖,特點:只支持 256 種顏色!最流行的時候在 1998~1999,有專利的! 

3.2 使用場景分析

3.2.1 JPEG/JPG

  • 特點:有損壓縮、體積小、不支持透明
  • 使用場景:顏色豐富的照片,JPG是通用的選擇,如大的背景圖、輪播圖或Banner圖。

3.2.2 PNG

  • 特點:無損壓縮、質量高、體積大、支持透明。
  • 使用場景:透明圖片的業(yè)務場景,如小的Logo、顏色簡單且對比強烈的圖片或背景。

3.2.3 SVG

  • 特點:文本文件、體積小、不失真、兼容性好、無需多端、多分辨率適配、較強的交互特性、渲染成本比較高。
  • 使用場景:圖片色彩相對簡單的業(yè)務場景。

3.2.4 Base64

  • 特點:文本文件、依賴編碼,Base64編碼后,圖片大小會膨脹為原文件的4/3。
  • 使用場景:小圖標(<8KB)解決方案。

3.2.5 WebP

  • 特點:WebP圖片是一種新的圖像格式,由Google開發(fā)。與png、jpg相比,相同的視覺體驗下,WebP圖像的尺寸縮小了大約30%。另外,WebP圖像格式還支持有損壓縮、無損壓縮、透明和動畫,但有兼容性問題。
  • 使用場景:圖片占較大的商場類網站,目前Google、Facebook、ebay、淘寶、騰訊、美團等已經在用。

“打開淘寶網,假如你是chrome瀏覽器,你會發(fā)現(xiàn),所有圖片都是webp結尾的,淘寶網圖片運用了webp。假如你是safari瀏覽器,看到圖片就是jpg或者png了,淘寶網自動判斷瀏覽器支持不支持webp,假如支持,則輸出相應的圖片格式!

以上就是IOS開發(fā)壓縮后圖片模糊問題解決的詳細內容,更多關于IOS壓縮圖片模糊的資料請關注腳本之家其它相關文章!

相關文章

最新評論