Fix the issue when WebP contains the ICC Profile with colorSpace other than RGB, which cause the CGImageCreate failed

This commit is contained in:
DreamPiggy 2019-02-26 13:13:22 +08:00
parent bede907ab7
commit 8c3cfbdfc1
1 changed files with 8 additions and 0 deletions

View File

@ -347,6 +347,14 @@
NSData *profileData = [NSData dataWithBytes:chunk_iter.chunk.bytes length:chunk_iter.chunk.size];
colorSpaceRef = CGColorSpaceCreateWithICCProfile((__bridge CFDataRef)profileData);
WebPDemuxReleaseChunkIterator(&chunk_iter);
if (colorSpaceRef) {
// `CGImageCreate` does not support colorSpace other than RGB (such as Monochrome), we must filter the colorSpace mode
CGColorSpaceModel model = CGColorSpaceGetModel(colorSpaceRef);
if (model != kCGColorSpaceModelRGB) {
CGColorSpaceRelease(colorSpaceRef);
colorSpaceRef = NULL;
}
}
}
}