STEP 1
WRITE IT IN TO "ViewController.h"
#import <UIKit/UIKit.h>
#import "ZDStickerView.h"
@interface ViewController : UIViewController<ZDStickerViewDelegate>
{
UIImagePickerController *imgpkr;
}
- (IBAction)btnAdd:(id)sender;
- (IBAction)btnDone:(id)sender;
- (IBAction)btnImage2:(id)sender;
@property (strong, nonatomic) IBOutlet UIImageView *ImgViewMain;
@property (strong, nonatomic) IBOutlet UIButton *btnImage2;
@end
STEP 2
WRITE IT IN TO "ViewController.m"
#import "ViewController.h"
@interface ViewController ()
{
ZDStickerView *userResizableView1;
BOOL ImgViewEnable;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//_btnImage2.hidden=YES;
//(remove this upside forward slash if you want to done your action on single button)
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btnAdd:(id)sender {
UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
imgPicker.delegate = self;
imgPicker.allowsEditing = YES;
imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:imgPicker animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
{
UIImage *imgChosen = info[UIImagePickerControllerEditedImage];
if (ImgViewEnable==YES)
{
_ImgViewMain.image=imgChosen;
ImgViewEnable=NO;
}
else
{
CGRect gripFrame1 = CGRectMake(90, 50, 100, 100);
UIImageView *imageView1 = [[UIImageView alloc]
initWithImage:imgChosen];
UIView* contentView = [[UIView alloc] initWithFrame:gripFrame1];
// [contentView setBackgroundColor:[UIColor whiteColor]];
[contentView addSubview:imageView1];
userResizableView1 = [[ZDStickerView alloc] initWithFrame:gripFrame1];
userResizableView1.tag = 0;
userResizableView1.delegate = self;
userResizableView1.contentView = contentView;//contentView;
userResizableView1.preventsPositionOutsideSuperview = NO;
[userResizableView1 showEditingHandles];
[self.view addSubview:userResizableView1];
}
//imgview.image = imgChosen;
[self dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)btnDone:(id)sender {
UIImageView *tmpView=[[UIImageView alloc] init];
tmpView.image= [self saveGLScreenshotToPhotosAlbum:_ImgViewMain.image];
_ImgViewMain.image=[UIImage imageNamed:@""];
_ImgViewMain.image=tmpView.image;
[userResizableView1 removeFromSuperview];
UIImageWriteToSavedPhotosAlbum(_ImgViewMain.image,nil,nil,nil);
}
- (IBAction)btnImage2:(id)sender
{
ImgViewEnable=YES;
UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
imgPicker.delegate = self;
imgPicker.allowsEditing = YES;
imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:imgPicker animated:YES completion:NULL];
}
- (UIImage *)cropImage:(UIImage *)oldImage
{
NSLog(@"subviews=%@",self.view.subviews);
CGSize imageSize = oldImage.size;
UIGraphicsBeginImageContextWithOptions(CGSizeMake( imageSize.width,imageSize.height -50),NO,0.);
[oldImage drawAtPoint:CGPointMake( 0, -50) blendMode:kCGBlendModeCopy alpha:1.];
UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return croppedImage;
}
- (UIImage *)saveGLScreenshotToPhotosAlbum:(UIImage *)oldImage
{
for (UIView *zdobj in self.view.subviews)
{
if ([zdobj isKindOfClass:[ZDStickerView class]]) {
for (UIView *viewObj in zdobj.subviews)
{
if (viewObj.tag==99 || viewObj.tag==100)
{
[viewObj removeFromSuperview];
//[viewObj setHidden:YES];
}
}
}
}
UIGraphicsBeginImageContext(self.view.bounds.size);
// retrieve the current graphics context
CGContextRef context = UIGraphicsGetCurrentContext();
// render view into context
[self.view.layer renderInContext:context];
// create image from context
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
image=[self cropImage:image];
UIGraphicsEndImageContext();
return image;
}
@end
STEP 3
ATTECH LIBRARY
1) Download library from link which is given below.
2) Add this folder with your program main folder.
SETP 4
SOLVE UNEXPECTED YOUR ERROR BY YOUR SELF
BEST OF LUCK
No comments:
Post a Comment