在成功地遵循了Ray Wenderlich 网站上的教程后,我决定尝试并操纵我学到的知识并将其应用于 CITransition,尤其是 CIDissolveTransition。但是,即使在交叉引用我从 Apple 自己的过滤器文档中学到的东西之后,我似乎也无法让图像出现(我得说,这些文档已经过时并且很难在他们自己复杂的示例之外进行调整)。这是我到目前为止所拥有的:
NSURL *url = [NSURL fileURLWithPath:imagePath];
NSURL *url2 = [NSURL fileURLWithPath:image2Path];
CIContext *context;
CIFilter *filter;
CIImage *beginImage, *targetImage;
UIImageView *mainImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[self addSubview:mainImage];
beginImage = [CIImage imageWithContentsOfURL:url];
targetImage = [CIImage imageWithContentsOfURL:url2];
if(context == nil)
{
NSLog(@"Creating Context");
context = [CIContext contextWithOptions:nil];
}
if(filter == nil) {
NSLog(@"Creating filter");
filter = [CIFilter filterWithName:@"CIDissolveTransition" keysAndValues:@"inputImage", beginImage, @"inputTargetImage", targetImage, @"inputTime", [NSNumber numberWithFloat:0.5], nil];
}
CIImage *outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImg = [UIImage imageWithCGImage:cgimg];
[mainImage setImage:newImg];
我得到的只是应该显示 mainImage 的黑屏。最终目标是能够使用滑块(我只是假设它会起作用)循环通过具有这种溶解效果的一系列图像,但我什至无法显示这个静态图像。任何帮助将不胜感激。