我想知道如何将2 uiimage合并为1?我想将最终产品保存到库中。为了保存图像,我正在使用UI按钮。这是我如何保存UIImageview.image的片段。
-(IBAction)getPhoto:(id)sender {
UIImage* imageToSave = imageOverlay.image;
UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil);
}
我在线查看了UIGraphicsBeginImageContext。找到了一个例子,但我无法理解如何将它实际应用到我的。这是我到目前为止的那个。
- (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个UIImageviews,它们是imageOverlay.image和imageView.image。如果我使用上面的方法如何将返回值分配给UIImageWriteToSavedPhotoAlbum?希望有人能指出我正确的方向。
非常感谢。
答案 0 :(得分:2)
看起来你的头文件中没有方法的标题,在运行IBAction的类/视图控制器的.h文件中,添加方法的第一行, - ( UIImage *)addImage:...并以a结尾;在@end之前。这应该工作,虽然你必须在同一个.h文件的.m文件中实现它。
答案 1 :(得分:1)
试试这个:
-(IBAction)getPhoto:(id)sender {
UIImage* imageToSave = [self addImage:imageOverlay.image secondImage:imageView.image];
UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil);
}
答案 2 :(得分:1)
创建一个NSLog,并像这样传递它们,image1和image2是你的图像:
NSLog (@"testing images aren't nil. Details for image1: %@ image2: %@",image1,image2);
我也是一个新手,我真的不知道一种更复杂的方式来看看图像是否为零,但我看到通过将一张零图像传递给上面的陈述,你只会得到零而不是这两个图像的值。如果您获得了大量信息,即使它们有很多代码,您也可能不理解它们,正如我通常所做的那样,至少您可以测试它们是否为零。