如何缓存从CIImage转换的UIImage

时间:2018-05-15 11:04:07

标签: ios performance uicollectionview uiimage core-image

在iOS应用中,我想在CIImage中显示UICollectionView张图片(来自CIFilter),但性能非常差,因为每次出现新单元格时都会刷新CIImage
因此我希望通过在UIImage中设置并存储此UIImage来缓存所有已过滤的图像。但是,似乎UIImage只会在显示后计算过滤后的图像 我尝试使用CGImageNSData ......但没有任何帮助。

强制计算CIImages并缓存图像输出的最佳方法是什么?

// Generation of cached images:
for (int i=0;i<10;i++)
{
    CIFilter *filteredimage=<output of function>
    CIImage *img=filteredimage.outputImage;
    UIImage *uImg=[UIImage imageWithCIImage:img];
    [filterPreviews addObject:uImg];
}

// Reuse of cached images in the cell
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    colorFilterCollectionViewCell *cell = (colorFilterCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];

    cell.filterPreview.image=[filterPreviews objectAtIndex:indexPath.row];
    return cell;
}

0 个答案:

没有答案