- 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);
+ /* 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); */