Я бы создал контекст изображения, а затем записал в него оба изображения.Затем используйте UIImageWriteToSavedPhotosAlbum для сохранения в альбом.Вот пример, где я помещаю логотип на сохраненное изображение при вызове с кнопки.В вашем случае имидж бренда будет вашим оверлеем, а imageToSave будет изображением из UIImagePickerController.Изменить в соответствии с.Надеюсь, это поможет:
- (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);
}