0

请帮忙。

似乎没有人对以下问题有一个成功的工作答案:

我使用 UIImagePickerController 从 iPhone 相机获取图像。拍摄图像时存在叠加层。叠加层只是一个带有各种手势的子类 UIImageView。

当我拍摄图像时,如何将叠加层精确地添加到图像在设备屏幕上的位置?

非常感谢任何帮助,

4

1 回答 1

3

我正在远离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;

}
于 2012-11-12T16:10:43.673 回答