-1

我有兴趣为 iPhone 和 iPad 构建一个拼贴风格的应用程序。我一直在研究其他应用程序并试图找出他们用来创建最终图像的方法。

我猜该应用程序有一个 UIView,然后每个单独的图像都是一个 UIImageView 并且是主 UIView 的子视图。然后,用户可以移动每个 UIImageView 并按照他们的意图定位它们。

现在我的问题是,在用户将所有 UIImageViews 定位在屏幕上之后,您如何根据屏幕上的内容创建最终图像。这当然考虑到您将放大图像以创建比方说 A4 大小的最终打印。

任何人都可以分享一些信息吗?

谢谢

4

2 回答 2

1

你应该看看CGContext Reference。您可以执行以下操作将 imageView 1 和 2 组合到 imageView 3。

示例代码:

UIGraphicsBeginImageContext(imageView1.image.size);  
CGRect rect = CGRectMake(0, 0, imageView1.image.size.width, imageView1.image.size.height);
[imageView1.image drawInRect:rect];  
[imageView2.image drawInRect:rect blendMode:kCGBlendModeScreen alpha:0.5];  
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();  
UIGraphicsEndImageContext();  
[imageView3 setImage:resultingImage];

祝你好运 !!!

于 2013-06-15T11:36:26.027 回答
1

如果您使用 UIView 包含更多要合并的 2 个图像,您可以尝试将视图捕获为要使用的图像。

    //捕获视图到图像
    -(UIImage *)captureImageFromView
    {
        UIView *theView = self; //自扩展UIView
        如果(空!= UIGraphicsBeginImageContextWithOptions)
        {
            UIGraphicsBeginImageContextWithOptions(theView.bounds.size, NO, 2.0f);
        }
        别的
        {
            //iOS 4.0
            UIGraphicsBeginImageContext(theView.frame.size);
        }
        [theView.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *captureImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        返回捕获图像;
    }

    //将2个图像合并为一个图像。
    -(UIImage *)mergeBaseImage:(UIImage *)_baseImage
                    underImage:(UIImage *)_underImage
            matchBaseImageSize:(BOOL)_matchBaseImageSize
    {
        UIGraphicsBeginImageContext(_baseImage.size);
        [_baseImage drawInRect:CGRectMake(0, 0, _baseImage.size.width, _baseImage.size.height)];
        如果(_matchBaseImageSize)
        {
            [_underImage drawInRect:CGRectMake(0, 0, _baseImage.size.width, _baseImage.size.height)];
        }
        别的
        {
            [_underImage drawInRect:CGRectMake(0, 0, _underImage.size.width, _underImage.size.height)];
        }
        UIImage *_mergedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        返回_mergedImage;
    }

希望它可以帮助你。

于 2013-06-15T14:38:20.137 回答