2011-04-08 32 views
0

我的項目有兩個UIImages,一個名爲imageView,另一個名爲Birdie合併並保存兩個UIImageView

- (UIImage *)addImage:(UIImage *)imageView toImage:(UIImage *)Birdie { 
    UIGraphicsBeginImageContext(imageView.size); 

    // Draw image1 
    [imageView drawInRect:CGRectMake(0, 0, imageView.size.width, imageView.size.height)]; 

    // Draw image2 
    [Birdie drawInRect:CGRectMake(0, 0, Birdie.size.width, Birdie.size.height)]; 

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return resultingImage; 
} 

-(void)captureScreen{ 
    UIImageWriteToSavedPhotosAlbum(resultingImage, nil, nil, nil); 
} 

這是我的代碼,captureScreen按鈕是保存圖像。它不工作,因爲resultingImage是未聲明的,但我對Xcode很新,所以我不知道如何解決這個問題。

非常感謝提前!

回答

0
`resultingImage` 

是不是一個全局變量,其範圍僅限於- (UIImage *)addImage:(UIImage *)imageView toImage:(UIImage *)Birdie方法,你必須調用此方法,並通過這種方法使用返回的對象。

-(void)captureScreen{ 
    UIImage *resultingImage = [self addImage:yourFirstImage toImage:yourSecondImage]; 
    UIImageWriteToSavedPhotosAlbum(resultingImage, nil, nil, nil); 
} 

添, 你應該記住一點THT我們不能直接調用「的drawRect」的方法。它會被系統調用。 所以在這裏你應該使用其他可用的UIImage方法。 你可以使用'imageNamed:'方法....

+0

謝謝你回答我的問題。我試圖用你發佈的代碼替換'captureScreen'代碼。但是當我按下按鈕時,應用程序似乎崩潰了。 再次感謝! – Tim 2011-04-08 16:51:37

+0

它在崩潰報告中顯示了什麼? – Ravin 2011-04-08 17:13:53

+0

頂部代碼(-UIImage ...):「'imageView'的本地聲明隱藏了實例變量。」 「Birdie的本地聲明隱藏了實例變量。」在buttonvoid部分:「不兼容的Objective-C類型'結構UIImageView *',當從不同的Objective-C類型傳遞'addImage:toImage:'的參數1時,期望'struct UIImage *'。先謝謝了! – Tim 2011-04-08 17:17:43

1

你可以這樣做。

覆蓋該-(void)captureScreen:方法-(void)captureScreen:(UIImage*)imageToSave

然後在您的按鈕操作像

- (IBAction)myButton:(id)sender{ [self captureScreen:[self addImage:imageViewImage toImage:BirdieImage]] }