我有兴趣为iPhone和iPad构建拼贴风格的应用程序。我一直在寻找其他应用程序,并试图找出他们用来创建最终图像的方法。
我猜这个应用程序有一个UIView,然后每个单独的图像是一个UIImageView,并且是主要UIView的子视图。然后,用户可以移动每个UIImageView并按照他们的意图定位它们。
现在我的问题是,在用户将所有UIImageViews放置在屏幕上之后,您如何从屏幕上的内容创建最终图像。这当然考虑到你将升级图像以创建一个A4大小的最终打印。
任何人都可以分享一些信息吗?
由于
答案 0 :(得分: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];
GoodLuck !!!
答案 1 :(得分:1)
如果使用UIView包含更多2个要合并的图像,则可以尝试将视图捕获为要使用的图像。
//Capture View to Image -(UIImage *)captureImageFromView { UIView *theView = self; //self extends UIView if( NULL != UIGraphicsBeginImageContextWithOptions ) { UIGraphicsBeginImageContextWithOptions(theView.bounds.size, NO, 2.0f); } else { //iOS 4.0 UIGraphicsBeginImageContext(theView.frame.size); } [theView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *captureImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return captureImage; } //Merge 2 Images to be an Image. -(UIImage *)mergeBaseImage:(UIImage *)_baseImage underImage:(UIImage *)_underImage matchBaseImageSize:(BOOL)_matchBaseImageSize { UIGraphicsBeginImageContext(_baseImage.size); [_baseImage drawInRect:CGRectMake(0, 0, _baseImage.size.width, _baseImage.size.height)]; if( _matchBaseImageSize ) { [_underImage drawInRect:CGRectMake(0, 0, _baseImage.size.width, _baseImage.size.height)]; } else { [_underImage drawInRect:CGRectMake(0, 0, _underImage.size.width, _underImage.size.height)]; } UIImage *_mergedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return _mergedImage; }
希望它可以帮到你。