逐帧调整动画 UIImage 的大小非常慢

Posted

技术标签:

【中文标题】逐帧调整动画 UIImage 的大小非常慢【英文标题】:Very slow to resize animated UIImage frame by frame 【发布时间】:2013-04-24 21:06:04 【问题描述】:

我正在尝试在 ios 中缩小 GIF 图像的大小,因此我正在循环遍历每一帧,如下面的代码所示。

    NSMutableArray *animationImages = [NSArray arrayWithArray:sourceImage.images];
    NSMutableArray *newAnimationImages = [[NSMutableArray alloc] init];

    //@autoreleasepool 
        UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
        for(UIImage *frame in animationImages) 
            [frame drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
            UIImage *newFrame = UIGraphicsGetImageFromCurrentImageContext();
            [newAnimationImages addObject:newFrame];
        
        UIGraphicsEndImageContext();
    //

    newImage = [UIImage animatedImageWithImages:newAnimationImages duration:sourceImage.duration];

不幸的是,由于某种原因,调整大小需要很长时间(2-4 秒的 gif 大约需要 3-4 秒)

任何想法我做错了什么?

【问题讨论】:

【参考方案1】:

快速更新 - 我最终为 UIImageView 使用了 Aspect Fit 视图选项,这正是我需要的,然后在服务器端进行了实际的调整大小。

【讨论】:

以上是关于逐帧调整动画 UIImage 的大小非常慢的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift UIImage 调整大小影响性能的问题;调整大小时出现意外尺寸[重复]

在裁剪之前调整 UIImage 或 CIImage 的大小会拉伸图像吗?

调整大小以适应 QTableView 中的行和列非常慢

图像压缩压缩速度非常慢

css3 animation实现逐帧动画

调整 UIImage 大小的哪种方法更好,为啥?