【问题标题】:Merging two UIImage into 1 to be savedtolibrary合并两个 UIImage 为 1 保存到库
【发布时间】:2011-07-14 08:29:45
【问题描述】:

我想知道如何将 2 个 uiimage 合并为 1 个?我想将最终产品保存到库中。为了保存图像,我使用了 UI 按钮。这是我如何保存 UIImageview.image 的 sn-p。

-(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 个 UIImageview,分别是 imageOverlay.image 和 imageView.image。如果我使用上面的方法如何将返回值分配给 UIImageWriteToSavedPhotoAlbum?希望有人能指出我正确的方向。

非常感谢。

【问题讨论】:

  • 非常有帮助...很有魅力。
  • 这个 addImage 操作帮助我将 200 张图片合二为一。谢谢。

标签: ios uiimage


【解决方案1】:

似乎您的头文件中没有该方法的标头,在您从中运行 IBAction 的类/视图控制器的 .h 文件中,添加方法的第一行,-( UIImage*) addImage:... 并以 ; 结束在@end 之前。这应该可行,尽管您必须在某个地方的同一 .h 文件的 .m 文件中实现它。

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 嗨,刚刚试过你的代码。它给了我这个警告:“getPhotoController 可能无法响应 -addImage:SecondImage”。 getPhotoController 是类名。还有什么我可能遗漏或做错了什么吗?
    • 您必须将:- (UIImage*)addImage:(UIImage *)image secondImage:(UIImage *)image2 ; 放在您的标头(getPhotoController.h 文件)中。
    • 现在,我得到了一个 SIGABRT。不知道如何阅读调试以找出问题。我已将 - (UIImage *) 位放入头文件中,并将您的第一个答案放入我的方法中。我有来自控制台的日志。这是日志的最后一点:在抛出“NSException”实例后调用终止
    • 验证两张图片是否不是nil
    • 对此我真的很抱歉,但我一定是个菜鸟。验证两个图像都不为零是什么意思?
    【解决方案3】:

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

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

    我也是一个新手,我真的不知道更复杂的方法来查看图像是否为 nil,但我看到通过将 nil 图像传递给上面的语句,你只会得到 nil这两个图像的值。如果你得到很多信息,即使它们是很多代码,你也可能不理解它们,我通常不会,至少你可以测试它们是否为 nil。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多