尝试从照片库中保存ipad应用程序包中的图像

时间:2011-04-26 13:32:58

标签: iphone cocoa-touch xcode ipad

-(IBAction)saveImage{



    NSMutableArray *dictWords= [[NSMutableArray alloc]initWithObjects:@"TIGER",@"CAT", @"ROSE", @"ELEPHANT",@"MOUSE IS LOOKING FOR THE CHEESE",@"KITE",@"CAR",@"AEROPLANE",@"MANGO",@"FRUITS ARE FALLING FROM THE TREE",@"MOUNTAIN",@"BIRDS ARE FLYING",@"IGLOO",@"THIS HOUSE IS BUILT OF WOODS",@"BANANA",@"RAINBOW",@"TRAIN",@"DADDY DRINKS JUICE",@"UMBRELLA",@"GOAT",@"CAT JUMPS HIGH",@"DOG RUNS FAST",@"BUS",@"GIRL IS CRYING",@"STARS",@"DOLPHIN",@"BOYS ARE PLAYING FOOTBALL",@"GLASS IS FULL OF WATER",@"SHIP",@"SNOWFALL",@"GHOST",@"RABBIT",@"WATERMELON",@"SPIDERMAN",@"DINOSAUR",@"MICKEY MOUSE",@"MONKEY IS SITTING ON A TREE",@"PEACOCK",@"LIGHTNING",@"HEN LAYS EGGS",nil];
    NSString *path=[[NSBundle mainBundle] pathForResource:[youSaid text] ofType:@"png" inDirectory:@"Image"];
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    for (int i=0 ; i<[assets count]; i++) {         
        if (i<[dictWords count]) {          
            [dict setObject:[[[assets objectAtIndex:i] defaultRepresentation] url] forKey:[NSString stringWithFormat:@"%@",[dictWords objectAtIndex:i]]];       
            NSLog(@"diccount:%d",[dict count]);   
        }
    }

     NSURL *imageurl = [dict objectForKey:[youSaid text]];    
    //NSLog(@"text:%@",[youSaid text]); 
    //Getting asset from url
    typedef void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *asset);
    typedef void (^ALAssetsLibraryAccessFailureBlock)(NSError *error); 

    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
    {
        ALAssetRepresentation *rep = [myasset defaultRepresentation];
        CGImageRef iref = [rep fullResolutionImage];
        //Setting asset image to image view according to the image url
        [imageview setImage:[UIImage imageWithCGImage:iref]];
        youSaid.text = [NSString stringWithFormat:@"%@",imageurl];



    }; 
    ALAssetsLibraryAccessFailureBlock failureblock  = ^(NSError *myerror)
    {
        NSLog(@"Error, cant get image - %@",[myerror localizedDescription]);
    }; 
    ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:imageurl resultBlock:resultblock failureBlock:failureblock]; 

    UIImage *image=[[UIImage alloc]initWithContentsOfFile:path];




NSData *imageData = UIImagePNGRepresentation(image); //convert image into .png format.

NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it

NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory

NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", youSaid.text]]; //add our image to the path

[fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the image

NSLog(@"image saved");
}

@end

这是我写的以下代码,但我无法保存images.i我只能理解一个名为NULL.png的图像。请指出更改以保存我库中的所有图片以进行捆绑。

谢谢, 克里斯蒂

3 个答案:

答案 0 :(得分:2)

示例代码

    - (void) openPhotoLibrary {
        NSLog(@"openPhotolibrary");

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
            if (self.picker != nil) {
                NSLog(@"releasing self.picker...");
                [self.picker release];
            }
            self.picker = [[UIImagePickerController alloc] init];
            self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            //self.picker.allowsImageEditing = YES;
            [self.picker presentModalViewController:self.picker animated:YES];
            self.picker.delegate = self;

            [[[CCDirector sharedDirector] openGLView] addSubview:self.picker.view];
        }
    }

    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)currentPicker {
        NSLog(@"imagePickerControllerDidCancel");

        // hide the self.picker if user cancels picking an image.
        [currentPicker dismissModalViewControllerAnimated:YES];
        self.picker.view.hidden = YES;
        [self.picker.view removeFromSuperview];
    }

    - (void)imagePickerController:(UIImagePickerController *)currentPicker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
    {
        [self saveImage:image withImageName:@"myPhoto"];

    }

//saving an image

- (void)saveImage:(UIImage*)image withImageName:(NSString*)imageName {

NSData *imageData = UIImagePNGRepresentation(image); //convert image into .png format.

NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it

NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory

NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]]; //add our image to the path

[fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the path (image)

NSLog(@"image saved");

}

答案 1 :(得分:0)

这段代码为我工作尝试它可能会帮助你

-(IBAction)PhotoLibraryButtonClicked:(id)sender{
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){


    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:imagePicker animated:YES];

}
else{

    [self displaysorceError];

    }

}


-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

//[self.popoverrcontroller dismissPopoverAnimated:true];
//[popoverrcontroller release];

NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:YES];

if([mediaType isEqualToString:(NSString *)kUTTypeImage]){

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
//  UIImage *rote = [image rotateInDegrees:219.0f];

    img.image = image;
    if(newMedia)
        UIImageWriteToSavedPhotosAlbum(image, nil,nil, nil);
}else if([mediaType isEqualToString:(NSString *)kUTTypeImage]){

    //not available vidio
}
}


-(IBAction)saveImageIn:(id)sender{

NSData *imageData = UIImagePNGRepresentation(img.image);

NSFileManager *fileMan = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@" %d.png",img.image]];

[fileMan createFileAtPath:fullPathToFile contents:imageData attributes:nil];



UIAlertView *alt = [[UIAlertView alloc] 
                    initWithTitle:@"Thank You" 
                    message:@"Image Save In Directory" 
                    delegate:nil cancelButtonTitle:@"OK" 
                    otherButtonTitles:nil];
[alt show];
[alt release];
}
谢谢.. :) Neet

答案 2 :(得分:0)

**将uivmage从photolibrary保存到Bundle **

。 (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {

[self dismissModalViewControllerAnimated:YES];


    imgview =[[UIImageView alloc]initWithFrame:CGRectMake(30, 30, 100, 100)];

    imgview.image =image;
    [self.view addSubview:imgview];
    [imgview setUserInteractionEnabled:YES];

}

(IBAction)saveimg:(id)sender {

NSData *imageData = UIImageJPEGRepresentation(imgview.image,1.0);

NSFileManager *fileMan = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"deepu22%d.jpg",imgview.image]];

[fileMan createFileAtPath:fullPathToFile contents:imageData attributes:nil];



UIAlertView *alt = [[UIAlertView alloc] 
                    initWithTitle:@"Thank You" 
                    message:@"Image Save In Directory" 
                    delegate:nil cancelButtonTitle:@"OK" 
                    otherButtonTitles:nil];
[alt show];

}

。 (IBAction)pic * kers:(id)发件人{

picker =[[UIImagePickerController alloc]init];

    picker.delegate=self;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker animated:YES];

} *