Description
Just move to new issue from this issue
Looks like the issue still exists for ios < 14.0
Can reproduce on devices with ios 12 and ios 13 while trying to render static WebP images (I see huge memory usage which cause app crash due to memory).
On ios14 works fine because SDWebImage v5.9.0 started to use native coder implementation.
In my pod manifest SDWebImageWebPCoder = 0.6.1.
- SDWebImage (5.9.4):
- SDWebImage/Core (= 5.9.4)
- SDWebImage/Core (5.9.4)
- SDWebImageWebPCoder (0.6.1):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.7)
On that image shown memory usage when 28 images were rendered. Size of each image about 40-80 kb.
About code usage.
I render images using ImageBackground (which uses Image component. Native code is here) component.
Also to add support of webp I've used react-native-webp-format (native code is here).
- (RCTImageLoaderCancellationBlock)decodeImageData:(NSData *)imageData
size:(CGSize)size
scale:(CGFloat)scale
resizeMode:(RCTResizeMode)resizeMode
completionHandler:(RCTImageLoaderCompletionBlock)completionHandler
{
UIImage *image = [[SDImageWebPCoder sharedCoder] decodedImageWithData:imageData options:nil];
if (!image) {
completionHandler(nil, nil);
return ^{};
}
completionHandler(nil, image);
return ^{};
}
Also a little bit more info about images:
I've generated them using imagick with the following options.
$image->getImagick()->setOption('webp:low-memory', 'true');
$image->getImagick()->setOption('webp:method', '6');
$image->getImagick()->setImageFormat('WEBP');
$image->getImagick()->unsharpMaskImage(0.25, 0.25, 8, 0.065);
$image->getImagick()->setInterlaceScheme(\Imagick::INTERLACE_NO);
$image->getImagick()->setColorspace(\Imagick::COLORSPACE_SRGB);
$image->getImagick()->setCompression(\Imagick::COMPRESSION_LZMA);
$image->getImagick()->setImageCompressionQuality(80);
Also image sample attached (i had put it into zip because github does not allow to attach webp).
thumb_dcee16ff-ac19-4452-8784-605ff9e39848_photos_medium.webp.zip