请帮忙。
似乎没有人对以下问题有一个成功的工作答案:
我使用 UIImagePickerController 从 iPhone 相机获取图像。拍摄图像时存在叠加层。叠加层只是一个带有各种手势的子类 UIImageView。
当我拍摄图像时,如何将叠加层精确地添加到图像在设备屏幕上的位置?
非常感谢任何帮助,
磅
我正在远离xcode写这个,所以它可能需要调整......
创建一个具有 UIImage 属性、图片和叠加层的 UIView 类,并将其称为 compositorView。从 UIImagePickerController 委托中的 didFinishPickingMediaWithInfo: 方法,将 compositorView 的图片属性设置为您刚刚拍摄的照片,并将叠加属性设置为您正在使用的任何图像。然后向 compositorView 询问它的composedImage,应该是它......
(你需要 QuartzCore 框架)
@synthesize picture = _picture;
@synthesize overlay = _overlay;
-(void)drawRect:(CGRect)rect
{
CGFloat width = self.frame.size.width;
CGFloat height = self.frame.size.height;
CGRect frame = CGRectMake(0, 0, width, height);
[_picture drawInRect:frame];
[_overlay drawInRect:frame];
}
-(UIImage *)composedImage
{
CGSize pageSize = self.frame.size;
UIGraphicsBeginImageContextWithOptions(pageSize, NO, 2.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.layer renderInContext:context];
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}