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