基础(一):UIImageView/UIImage 使用

SDWebImageManager *mgr = [SDWebImageManager sharedManager];
NSData *data = UIImageJPEGRepresentation([[mgr imageCache] 
tempView.image = [self imageFromGifFirstImage:data]; // 获取图片的第一帧

#pragma mark - 获取到 GIF图片的第一帧
- (UIImage *)imageFromGifFirstImage:(NSData *)data{
    CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);
    size_t count = CGImageSourceGetCount(source);
    
    UIImage *sourceImage;
    if(count <= 1){
        CFRelease(source);
        sourceImage = [[UIImage alloc] initWithData:data];
    }else{
        CGImageRef image = CGImageSourceCreateImageAtIndex(source, 0, NULL);
        sourceImage = [UIImage imageWithCGImage:image];
        CFRelease(source);
        CGImageRelease(image);
    }
    return sourceImage;
}

二、图片使用

//去除图片的渲染模式 
- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode NS_AVAILABLE_IOS(7_0);
//把图片转换成data
NSData * data = UIImagePNGRepresentation(image);

图片的两种加载方式:

   UIImage *image = [UIImage imageNamed:imageName];
        // 2.2根据图片名称加载相应的图片
        // imageNmae:方式加载的图片会被缓存到内存中,而且一直会被缓存,程序员手动是无法释放此内存
        // 好处:读取速度快,  图片比较小,而且图片使用频率比较高
        //       
       

           // 通过图片路径加载指定的图片
 UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
        // 通过路径的方式去加载图片,只要图片使用完就会立即释放
        // 好处:不会占用过多的缓存
        // 坏处:读取速度慢
        // 图片比较大,图片使用频率比较小
        // 获取图片文件的全路径

你可能感兴趣的:(基础(一):UIImageView/UIImage 使用)