From 557ef9dc38aef5ae5a1d16d9f40e83a784760915 Mon Sep 17 00:00:00 2001 From: gongdao123 Date: Mon, 22 Apr 2019 10:43:21 +0800 Subject: [PATCH] pre-render image to improve loading performance --- ios/RCTImageSequence/RCTImageSequenceView.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ios/RCTImageSequence/RCTImageSequenceView.m b/ios/RCTImageSequence/RCTImageSequenceView.m index 9038f5f..a1a3617 100644 --- a/ios/RCTImageSequence/RCTImageSequenceView.m +++ b/ios/RCTImageSequence/RCTImageSequenceView.m @@ -30,9 +30,16 @@ - (void)setImages:(NSArray *)images { #endif dispatch_async(dispatch_queue_create("dk.mads-lee.ImageSequence.Downloader", NULL), ^{ - UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]]; + UIImage *frameImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]]; + // here is the code to pre-render the image + UIGraphicsBeginImageContext(frameImage.size); + CGRect rect = CGRectMake(0, 0, frameImage.size.width, frameImage.size.height); + [frameImage drawInRect:rect]; + UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + dispatch_async(dispatch_get_main_queue(), ^{ - [weakSelf onImageLoadTaskAtIndex:index image:image]; + [weakSelf onImageLoadTaskAtIndex:index image:renderedImage]; }); });