CGImageRelease(ref);
}
-Image::Image(const unsigned char *data, size_t length) {
+Image::Image(const unsigned char *data, size_t length, const char *formatHint) {
CGDataProviderRef dpRef = CGDataProviderCreateWithData(NULL, data, length, NULL);
- CGImageRef ref = CGImageCreateWithJPEGDataProvider(dpRef, NULL, false, kCGRenderingIntentDefault);
+ CGImageRef ref;
+ if (strcmp("png", formatHint) == 0)
+ ref = CGImageCreateWithPNGDataProvider(dpRef, NULL, false, kCGRenderingIntentDefault);
+ else if (strcmp("jpg", formatHint) == 0)
+ ref = CGImageCreateWithJPEGDataProvider(dpRef, NULL, false, kCGRenderingIntentDefault);
+ else
+ abort();
initWithImageRef(ref);
CGImageRelease(ref);
}