Skip to content

Commit 1903ac2

Browse files
committed
Fix again for CMYK image
1 parent 777065d commit 1903ac2

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

SDWebImageWebPCoder/Classes/SDImageWebPCoder.m

+10-8
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,8 @@ - (nullable NSData *)sd_encodedWebpDataWithImage:(nullable CGImageRef)imageRef
786786
.bitsPerComponent = (uint32_t)bitsPerComponent,
787787
.bitsPerPixel = (uint32_t)bitsPerPixel,
788788
.colorSpace = colorSpace,
789-
.bitmapInfo = bitmapInfo
789+
.bitmapInfo = bitmapInfo,
790+
.renderingIntent = CGImageGetRenderingIntent(imageRef)
790791
};
791792
vImage_CGImageFormat destFormat = {
792793
.bitsPerComponent = 8,
@@ -801,14 +802,15 @@ - (nullable NSData *)sd_encodedWebpDataWithImage:(nullable CGImageRef)imageRef
801802
return nil;
802803
}
803804

804-
vImage_Buffer src = {
805-
.data = (uint8_t *)CFDataGetBytePtr(dataRef),
806-
.width = width,
807-
.height = height,
808-
.rowBytes = bytesPerRow
809-
};
810-
vImage_Buffer dest;
805+
vImage_Buffer src;
806+
error = vImageBuffer_InitWithCGImage(&src, &srcFormat, nil, imageRef, kvImageNoFlags);
807+
if (error != kvImageNoError) {
808+
vImageConverter_Release(convertor);
809+
CFRelease(dataRef);
810+
return nil;
811+
}
811812

813+
vImage_Buffer dest;
812814
error = vImageBuffer_Init(&dest, height, width, destFormat.bitsPerPixel, kvImageNoFlags);
813815
if (error != kvImageNoError) {
814816
vImageConverter_Release(convertor);

0 commit comments

Comments
 (0)