- auto provider = CGDataProviderCreateWithFilename(path.c_str());
- std::ifstream file(path);
- long magic;
- file.read((char*)&magic, 8);
- file.close();
-
- CGImageRef ref;
-
- if (magic == 0x0a1a0a0d474e5089) // png magic number
- ref = CGImageCreateWithPNGDataProvider(provider, nullptr, false, kCGRenderingIntentDefault);
- else
- ref = CGImageCreateWithJPEGDataProvider(provider, nullptr, false, kCGRenderingIntentDefault);
+ CFStringRef str = CFStringCreateWithCString(NULL, path.c_str(), kCFStringEncodingUTF8);
+ CFURLRef url = CFURLCreateWithFileSystemPath(NULL, str, kCFURLPOSIXPathStyle, false);
+ CGImageSourceRef source = CGImageSourceCreateWithURL(url, NULL);
+ CGImageRef ref = CGImageSourceCreateImageAtIndex(source, 0, NULL);