gpt4 book ai didi

ios - 在iOS 5核心图像过滤器中显示从CIImage获得的UIImage

转载 作者:行者123 更新时间:2023-12-01 17:44:12 25 4
gpt4 key购买 nike

我正在使用图像过滤器应用程序。我使用以下代码创建了过滤器:

context = [CIContext contextWithOptions:nil];



beginImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"biscus_small.png"]];


filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, beginImage,
@"inputIntensity", [NSNumber numberWithFloat:0.8], nil];

然后,当用户选择过滤器时,我只需在应用过滤器后获取CIImage并将其分配给UIImageView。出于某种原因,setImage之后的UIImageView显示白色(什么都没有)。
CIImage *outputImage = [filter outputImage];

// CGImageRef cgimg =
// [context createCGImage:outputImage fromRect:[outputImage extent]];

UIImage *finalImage = [UIImage imageWithCIImage:outputImage];

[self.imageView setImage:finalImage];

如果我使用CIContext的createCGImage方法,则它可以正常工作并使用过滤器显示图像,但使用createCGImage的速度非常慢。

最佳答案

CIImage的-createCGImage:fromRect:之所以这么慢的原因是,这实际上触发了光栅位图的处理和输出。将输出CIImage分配给UIImage不会导致图像被处理并呈现输出。通过Core Image过滤图像时,您将无法避免此步骤。

正如我在this answer中所述,Core Image在iOS 5.1上的性能令人失望。如果可以提出建议,我已经构建了an open source framework,它可以进行GPU加速的图像处理,并且在我测试过的几乎所有情况下都可以胜过Core Image的性能。对于图像过滤,我的速度比iPhone 4上的Core Image快4倍。

但是,过滤时往返于UIImage仍有一些开销,因此,如果您能够处理原始图像字节,那么我的原始数据输入和输出比处理UIImage快得多。我将在此框架中添加一些直接的JPEG和PNG输入和输出,以为此提供比通过UIImage更快的路径。

关于ios - 在iOS 5核心图像过滤器中显示从CIImage获得的UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com