Merge pull request #13 from SDWebImage/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:36 +08:00 committed by GitHub
commit a46ca76b8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 0 deletions

View File

@ -434,6 +434,14 @@
NSData *profileData = [NSData dataWithBytes:chunk_iter.chunk.bytes length:chunk_iter.chunk.size]; NSData *profileData = [NSData dataWithBytes:chunk_iter.chunk.bytes length:chunk_iter.chunk.size];
colorSpaceRef = CGColorSpaceCreateWithICCProfile((__bridge CFDataRef)profileData); colorSpaceRef = CGColorSpaceCreateWithICCProfile((__bridge CFDataRef)profileData);
WebPDemuxReleaseChunkIterator(&chunk_iter); 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;
}
}
} }
} }