Created
February 7, 2013 18:19
-
-
Save betzerra/4732967 to your computer and use it in GitHub Desktop.
CGImageFromFile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CGImageRef CGImageFromFile (NSString* path){ | |
// Get the URL for the pathname passed to the function. | |
NSURL *url = [NSURL fileURLWithPath:path]; | |
CGImageRef myImage = NULL; | |
CGImageSourceRef myImageSource; | |
CFDictionaryRef myOptions = NULL; | |
CFStringRef myKeys[2]; | |
CFTypeRef myValues[2]; | |
// Set up options if you want them. The options here are for | |
// caching the image in a decoded form and for using floating-point | |
// values if the image format supports them. | |
myKeys[0] = kCGImageSourceShouldCache; | |
myValues[0] = (CFTypeRef)kCFBooleanTrue; | |
myKeys[1] = kCGImageSourceShouldAllowFloat; | |
myValues[1] = (CFTypeRef)kCFBooleanTrue; | |
// Create the dictionary | |
myOptions = CFDictionaryCreate(NULL, (const void **) myKeys, | |
(const void **) myValues, 2, | |
&kCFTypeDictionaryKeyCallBacks, | |
& kCFTypeDictionaryValueCallBacks); | |
// Create an image source from the URL. | |
myImageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)url, myOptions); | |
CFRelease(myOptions); | |
// Make sure the image source exists before continuing | |
if (myImageSource == NULL){ | |
fprintf(stderr, "Image source is NULL."); | |
return NULL; | |
} | |
// Create an image from the first item in the image source. | |
myImage = CGImageSourceCreateImageAtIndex(myImageSource, | |
0, | |
NULL); | |
CFRelease(myImageSource); | |
// Make sure the image exists before continuing | |
if (myImage == NULL){ | |
fprintf(stderr, "Image not created from image source."); | |
return NULL; | |
} | |
return myImage; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment