SDWebImage 加載多張大圖優(yōu)化

實(shí)現(xiàn)方案來(lái)自度娘
1.在SDWebImage目錄下的 UIImage+MultiFormat.m 文件中增加方法
+ (UIImage *)compressImageWith:(UIImage *)image {
  float imageWidth = image.size.width;
  float imageHeight = image.size.height;
  float width = 640;
  float height = image.size.height/(image.size.width/width);
  float widthScale = imageWidth /width;
  float heightScale = imageHeight /height;
  // 創(chuàng)建一個(gè)bitmap的context
  // 并把它設(shè)置成為當(dāng)前正在使用的context
  UIGraphicsBeginImageContext(CGSizeMake(width, height));
  if (widthScale > heightScale) {
    [image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , height)];
   } else {
    [image drawInRect:CGRectMake(0, 0, width , imageHeight /widthScale)];
   }
  // 從當(dāng)前context中創(chuàng)建一個(gè)改變大小后的圖片
  UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
  // 使當(dāng)前的context出堆棧
  UIGraphicsEndImageContext();
  return newImage;
}
2.在該文件下面方法中調(diào)用
+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data {
  if (!data) { return nil; }
  UIImage *image;
  SDImageFormat imageFormat = [NSData sd_imageFormatForImageData:data];
  if (imageFormat == SDImageFormatGIF) {
    image = [UIImage sd_animatedGIFWithData:data];
  }
#ifdef SD_WEBP
  else if (imageFormat == SDImageFormatWebP) {
    image = [UIImage sd_imageWithWebPData:data];
  }
#endif
  else {
  image = [[UIImage alloc] initWithData:data];
  //在這里增加下面三行代碼
  if (data.length/1024 > 128) {
    image = [self compressImageWith:image];
  }
#if SD_UIKIT || SD_WATCH
  UIImageOrientation orientation = [self sd_imageOrientationFromImageData:data];
  if (orientation != UIImageOrientationUp) {
    image = [UIImage imageWithCGImage:image.CGImage
    scale:image.scale orientation:orientation];
  }
#endif
  }
  return image;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,037評(píng)論 4 61
  • 公眾號(hào):虛度時(shí)光 10多年沒(méi)有交集的高中同學(xué)建群突然有聯(lián)系了,是不是立馬熱血起來(lái),7、8 年沒(méi)聯(lián)系的大學(xué)同學(xué)建群...
    虛度時(shí)光讀吧閱讀 232評(píng)論 0 0
  • 一切都是虛妄! 我們時(shí)而懷念的 冬日清晨的那層薄霜 秋風(fēng)里旋轉(zhuǎn)飛舞的黃葉 仲夏夜晚的蟲(chóng)鳴蛙聲 還有春天絲毛般撫摸的...
    三月無(wú)名閱讀 169評(píng)論 0 1
  • 日記寫(xiě)了這么些天,好像已經(jīng)習(xí)慣了,雖然寫(xiě)的不好,但是它記錄了每天發(fā)生的事,記錄了我的期望,我的改變,孩子的改變,還...
    梅美潔車(chē)飾閱讀 207評(píng)論 0 0

友情鏈接更多精彩內(nèi)容