Skip to content

use ImageIO instead of NSData contendOffile #24

@constantine-fry

Description

@constantine-fry

ImageIO is low level but very fast way to read/save image data

Read

    CGImageSourceRef imageSource = CGImageSourceCreateWithData((__bridge CFDataRef)(data), NULL);

    CGImageRef image = CGImageSourceCreateImageAtIndex(imageSource,
                                                       0,
                                                       NULL);
    UIImage *im = [UIImage imageWithCGImage:image];
    CFRelease(image);
    CFRelease(imageSource);

Save

NSString *path = cachePathForKey(key);
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)[NSURL fileURLWithPath:path], NULL);

if (!imageSource)
    return nil;

CGImageRef image = CGImageSourceCreateImageAtIndex(imageSource,
                                                   0,
                                                   NULL);

UIImage *i = nil;
if (image) {
    i = [UIImage imageWithCGImage:image];
    CFRelease(image);
}
CFRelease(imageSource);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions