nickAtStack
nickAtStack

Reputation: 163

Save two overlapping images in one, iOS

Possible duplicate : Saving two Overlapping UIImage

In a UIScrollView, i've added my UIImageView and there's a frame Layer above it. I want to save the final Image on screen after all editing. Answer given to the above mentioned question does the work but as it's drawing the frame, results in degradation of quality of my image , So i'm searching for a solution which keeps my image in good resolution. Please help me out of this, thanks in advance !

Upvotes: 0

Views: 1106

Answers (1)

Pradhyuman sinh
Pradhyuman sinh

Reputation: 3928

Try with this code:

  //merge two images for this code

 UIImage *bottomImage =imgview.image; //background image ////1st image
 UIImage *image       = imgProfile.image; //foreground image///2nd image

 CGSize newSize = CGSizeMake(270, 330); // set your image rect
 UIGraphicsBeginImageContext( newSize );

 // Use existing opacity as is
 [bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];///1st image set frame

 // Apply supplied opacity if applicable

 [image drawInRect:CGRectMake(81,218,97,78) blendMode:kCGBlendModeNormal alpha:1]; //2nd image set frame on bottom image with alpha value

 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
 NSData *imageData = UIImagePNGRepresentation(newImage);
 [imageData writeToFile:savedImagePath atomically:NO];

You can see your newly created image in your application's document directory.

Upvotes: 1

Related Questions