Merge pull request #2627 from dreampiggy/bugfix_webp_icc_monochrome

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 17:50:20 +08:00 committed by GitHub
commit 46fae667ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;
}
}
}
}