在Ray Wenderlich的網站上關注了tutorial,我決定嘗試操縱我學到的知識並將其應用於CITransition,特別是CIDissolveTransition。然而,即使在交叉引用了我對蘋果公司自己的過濾器文檔(我認爲,這些文檔已經過時,難以置信地難以適應他們自己錯綜複雜的例子)之後,我似乎無法看到圖像出現。這是我到目前爲止:如何在Xcode中使用圖像轉換過濾器?
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應該顯示。最終目標是能夠通過使用滑塊(我只假設可以工作)通過具有這種溶解效果的圖像序列來循環,但是我甚至無法得到這個靜態圖像來顯示。任何幫助將不勝感激。
哦,夥計。不能相信我錯過了這一點。這只是給這個項目增加了一個很大的障礙。我假設我的下一個最佳解決方案是手動操作我的圖像的像素數據。這看起來很具挑戰性。謝謝您的幫助! – MyNameIsKo 2012-04-13 16:18:33
這不再是事實。文檔目前聲明「適用於OS X v10.4及更高版本以及iOS 6.0及更高版本。」 – zot 2016-10-02 02:36:19