将两个UIImage合并成为一个被保存的库

我想知道怎样才能将2个图像合并为1? 我想将最终产品保存到库中。 为了保存图像,我使用了一个UIbutton。 这里是我如何保存UIImageview.image的片段。

-(IBAction)getPhoto:(id)sender { UIImage* imageToSave = imageOverlay.image; UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil); } 

我在网上看了一下,看了一下UIGraphicsBeginImageContext。 find一个例子,但我不明白如何实际应用到我的。 这是迄今为止我所得到的。

 - (UIImage*)addImage:(UIImage *)image secondImage:(UIImage *)image2 { UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)]; [image2 drawInRect:CGRectMake(10,10,image2.size.width,image2.size.height) blendMode:kCGBlendModeNormal alpha:1.0]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } 

现在我有2个UIImageView是imageOverlay.image和imageView.image。 如果我使用上面的方法如何将返回值分配给UIImageWriteToSavedPhotoAlbum? 希望有人能指点我正确的方向。

非常感谢。

好像你没有头文件中的方法头文件,你正在运行IBAction的类/视图控制器的.h文件中添加方法的第一行 – (UIImage *) addImage:…并用a结束; 在@end之前。 这应该工作,但你必须在同一个.h文件的.m文件中实现它。

尝试这个:

 -(IBAction)getPhoto:(id)sender { UIImage* imageToSave = [self addImage:imageOverlay.image secondImage:imageView.image]; UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil); } 

创build一个NSLog,并像这样传递它们,image1和image2是你的图像:

 NSLog (@"testing images aren't nil. Details for image1: %@ image2: %@",image1,image2); 

我也是一个新手,我真的不知道更复杂的方式来看看图像是零,但我看到,通过传递一个零图像上面的声明,你只会得到零,而不是价值观这两个图像。 如果你得到很多的信息,即使它们有很多的代码,你也可能不了解它们,至less我们可以testing它们是否为零。