save the captured image with the overlay image to

2019-08-22 02:30发布

How can i merge the captured photo from UIImagePickerController and cameraoverlay view? Then i want to save it to the photos album.

Need help on this.

3条回答
Explosion°爆炸
2楼-- · 2019-08-22 02:44

i think this may help to work with camera overlay view and saving overlay clicked image in to library http://red-glasses.com/index.php/tutorials/ios4-take-photos-with-live-video-preview-using-avfoundation/

查看更多
Fickle 薄情
3楼-- · 2019-08-22 02:45

Sorry i didn't get your question earlier.. One way to do is that to capture the screenshot programmatically and then edit the image according to your requirements and save it.

This should help... How to take a screenshot programmatically

查看更多
Explosion°爆炸
4楼-- · 2019-08-22 02:49

I would create an image context, then write both images into it. Then use UIImageWriteToSavedPhotosAlbum to save to album. Here is an example where I put a logo on the saved image when called from a button. In your case the brand image will be your overlay and the imageToSave will be the image from the UIImagePickerController. Modify to suit. Hopefully it will help:

 - (IBAction)saveImage:(id)sender{

    //add brand to image
    UIImage *BrandImage = [UIImage imageNamed:@"brand.png"];
    UIImage* imageToSave = [imageView image]; //get current imageView
    CGSize targetSize = CGSizeMake(self.imageView.image.size.width, self.imageView.image.size.height);
    CGRect imageRect = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);

    //get screen size for retina or non retina
    UIScreen *MainScreen = [UIScreen mainScreen];
    UIScreenMode *ScreenMode = [MainScreen currentMode];
    CGSize Size = [ScreenMode size];

//position brand logo according to screen size
    if (Size.width == 640) {
        topImageRect = CGRectMake(self.imageView.image.size.width - 160, self.imageView.image.size.height - 80, 141, 53);
    }
    else
    {
        topImageRect = CGRectMake(self.imageView.image.size.width - 80, self.imageView.image.size.height - 40, 71, 27);
    }


    UIGraphicsBeginImageContext(targetSize);
    CGContextRef context = UIGraphicsGetCurrentContext();       
    UIGraphicsPushContext(context);                             

    [imageToSave drawInRect:imageRect];
    [BrandImage drawInRect:topImageRect];

    UIGraphicsPopContext();                             

    // get a UIImage from the image context
    UIImage* SavedImage = UIGraphicsGetImageFromCurrentImageContext();

    // clean up drawing environment
    UIGraphicsEndImageContext();

    // Save it to the camera roll / saved photo album
    UIImageWriteToSavedPhotosAlbum(SavedImage, nil, nil, nil);

}
查看更多
登录 后发表回答