SDWebImage阅读笔记

  • 根据图像的二进制数据判断图片的类型

// NSData+ImageContentType.h

/**
 *  Compute the content type for an image data
 *
 *  @param data the input data
 *
 *  @return the content type as string (i.e. image/jpeg, image/gif)
 *
 * 根据图像的二进制数据判断图片的类型
 *
 * @param  data 传入的二进制数据
 * @return 图片类型的字符串(如:image/jpeg,image/gif)
 */
+ (NSString *)sd_contentTypeForImageData:(NSData *)data;


  • 传入Gif图像的名称,得到一个可动画的图像

// UIImage+GIF.h
//传入Gif图像的名称,得到一个可动画的图像
+ (UIImage *)sd_animatedGIFNamed:(NSString *)name;

//传入Gif图像的二进制数据,得到一个可动画的图像
+ (UIImage *)sd_animatedGIFWithData:(NSData *)data;

- (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size;


  • 对key(通常为URL)进行MD5加密,加密后的密文作为图片的名称

//对key(通常为URL)进行MD5加密,加密后的密文作为图片的名称
- (NSString *)cachedFileNameForKey:(NSString *)key {
    const char *str = [key UTF8String];
    if (str == NULL) {
        str = "";
    }
    unsigned char r[CC_MD5_DIGEST_LENGTH];
    CC_MD5(str, (CC_LONG)strlen(str), r);
    NSString *filename = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%@",
                          r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10],
                          r[11], r[12], r[13], r[14], r[15], [[key pathExtension] isEqualToString:@""] ? @"" : [NSString stringWithFormat:@".%@", [key pathExtension]]];

    return filename;
}

  • 图片的解压缩

// SDWebImageDecoder.h
//图片解压缩处理通用思路:是在子线程,将原始的图片渲染成一张的新的可以字节显示的图片,来获取一个解压缩过的图片。
//图片的解压缩以前(会导致内存暴增?还未验证)
+ (UIImage *)decodedImageWithImage:(UIImage *)image;

你可能感兴趣的:(SDWebImage阅读笔记)