+ initWithImageRef(ref);
+ CGImageRelease(ref);
+}
+
+Image::Image(const unsigned char *data, size_t length, const char *formatHint) {
+ CGDataProviderRef dpRef = CGDataProviderCreateWithData(NULL, data, length, NULL);
+ 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);
+}