From 7adec18d18905ea5ff254391f2f1e86d80d5bd79 Mon Sep 17 00:00:00 2001 From: Leopold Jacquot Date: Mon, 16 Sep 2024 18:54:55 +0200 Subject: [PATCH] fix: iOS stickers lose their transparent background --- ios/UIPasteboard+GetImageInfo.m | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/ios/UIPasteboard+GetImageInfo.m b/ios/UIPasteboard+GetImageInfo.m index e8852ff..627f66a 100644 --- a/ios/UIPasteboard+GetImageInfo.m +++ b/ios/UIPasteboard+GetImageInfo.m @@ -31,9 +31,9 @@ @implementation UIPasteboard (GetImageInfo) NSString *uri = self.string; NSData *fileData = item[type]; - if ([type isEqual:@"public.jpeg"] || [type isEqual:@"public.heic"] || [type isEqual:@"public.png"]) { + if ([type isEqual:@"public.jpeg"] || [type isEqual:@"public.png"]) { fileData = [self getDataForImageItem:item[type] type:type]; - } else if ([type isEqual:@"com.compuserve.gif"]) { + } else if ([type isEqual:@"com.compuserve.gif"] || [type isEqual:@"public.heic"]) { fileData = [self dataForPasteboardType:type]; } @@ -75,19 +75,13 @@ @implementation UIPasteboard (GetImageInfo) } } + return fileInfos; } -(NSData *) getDataForImageItem:(NSData *)imageData type:(NSString *)type { UIImage *image; - if ([type isEqual:@"public.heic"]) { - CFDataRef cfdata = CFDataCreate(NULL, [imageData bytes], [imageData length]); - CGImageSourceRef source = CGImageSourceCreateWithData(cfdata, nil); - CGImageRef imageRef = CGImageSourceCreateImageAtIndex(source, 0, nil); - image = [[UIImage alloc] initWithCGImage:imageRef]; - } else { - image = (UIImage *)imageData; - } + image = (UIImage *)imageData; size_t width = CGImageGetWidth(image.CGImage); size_t height = CGImageGetHeight(image.CGImage); if (width > 6048 || height > 4032) {