Wednesday, 8 July 2015

(WITH DOUBLE BUTTON WITHOUT USE SUBVIEW) CREATE IMAGE ON IMAGE EDITING FROM THE LIBRARY


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