我的项目有两个UIImages
,一个名为imageView
,另一个名为Birdie
。
- (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 :(得分:1)
你可以这样做。
将此-(void)captureScreen:
方法重写为-(void)captureScreen:(UIImage*)imageToSave
然后在您的按钮操作中
- (IBAction)myButton:(id)sender{
[self captureScreen:[self addImage:imageViewImage toImage:BirdieImage]]
}
答案 1 :(得分:0)
`resultingImage`
不是全局变量,其范围仅限于- (UIImage *)addImage:(UIImage *)imageView toImage:(UIImage *)Birdie
方法,您必须调用此方法并使用此方法返回的对象。
-(void)captureScreen{
UIImage *resultingImage = [self addImage:yourFirstImage toImage:yourSecondImage];
UIImageWriteToSavedPhotosAlbum(resultingImage, nil, nil, nil);
}
添 有一点你应该记住,我们不能直接调用'drawRect'方法。 它将由系统调用。 所以在这里你应该使用其他可用于UIImage的方法。 你可以使用'imageNamed:'方法......