Ios 创建我自己的iphone照片库

Ios 创建我自己的iphone照片库,ios,iphone,objective-c,ios5,Ios,Iphone,Objective C,Ios5,我想创建我自己的照片库,从我的图库中获取图像并保存到我的图库中,然后询问是否需要dekete..如果有任何帮助,我将不胜感激 问候 Ghaus您可以让用户使用UIImagePickerControl选择要导入的图像。有关详细信息,请参阅这篇优秀的文章 之后,使用类似以下内容将图像保存/加载到您自己的应用程序中 - (void)saveImage: (UIImage*)image { if (image != nil) { NSArray *paths = NSS

我想创建我自己的照片库,从我的图库中获取图像并保存到我的图库中,然后询问是否需要dekete..如果有任何帮助,我将不胜感激

问候


Ghaus

您可以让用户使用UIImagePickerControl选择要导入的图像。有关详细信息,请参阅这篇优秀的文章

之后,使用类似以下内容将图像保存/加载到您自己的应用程序中

- (void)saveImage: (UIImage*)image
{
    if (image != nil)
    {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                      NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString* path = [documentsDirectory stringByAppendingPathComponent: 
                       [NSString stringWithString: @"test.png"] ];
        NSData* data = UIImagePNGRepresentation(image);
        [data writeToFile:path atomically:YES];
    }
}



- (UIImage*)loadImage
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                      NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent: 
                      [NSString stringWithString: @"test.png"] ];
    UIImage* image = [UIImage imageWithContentsOfFile:path];
    return image;
}
添加以下内容:

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{


    if ([self isPad]) {

        if(picker.sourceType==UIImagePickerControllerSourceTypePhotoLibrary)
        {

            [popoverController dismissPopoverAnimated:YES];

        }
        else
        {
            [picker  dismissModalViewControllerAnimated:YES];
            [picker release];

        }

    }   
    else
    {

        [picker dismissModalViewControllerAnimated:YES]; 
    }

}

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

{   
    UIImage *imageToScale=[info objectForKey:UIImagePickerControllerOriginalImage];

    flagImageSelected=YES;
    /*Set Image on the Btn with Image Insets.*/    
    //Image Insets TOP, LEFT, BOTTOM, RIGHT
    if([self isPad])
    {
        [btnImage setImageEdgeInsets:UIEdgeInsetsMake(31.0,33.0,36,36.0)];

        //imageToScale =[imageToScale scale:CGSizeMake(530, 546)];
        imageToScale=[imageToScale scaleToSize:CGSizeMake(530, 546)];  


    }
    else
    {
        [btnImage setImageEdgeInsets:UIEdgeInsetsMake(13.0,13.0,14.0,14.0)];
        imageToScale=[imageToScale scaleToSize:CGSizeMake(300, 300)];  

    }

    [btnImage setImage:imageToScale forState:UIControlStateNormal]; 



    if ([self isPad]) {

        if(picker.sourceType==UIImagePickerControllerSourceTypePhotoLibrary)
        {

            [popoverController dismissPopoverAnimated:YES];

        }
        else
        {
            [picker  dismissModalViewControllerAnimated:YES];
            [picker release];

        }

    }   
    else
    {
        [picker dismissModalViewControllerAnimated:YES];
        //[picker release];
    }
}
-(NSString *) getImagePath{

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSError *error;
    [[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:YES attributes:nil error:&error]; 
    return documentsDirectory;
}

(1) 重新计算是没有用的。(2) 这段代码有许多严重的bug,表明代码的作者在没有考虑每一行的作用的情况下将其复制/粘贴在一起。(3) 在没有解释或上下文的情况下发布代码并没有太大的帮助(除非它很短并且“正常工作”)。Thnx对于anwser…真的很有帮助
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{


    if ([self isPad]) {

        if(picker.sourceType==UIImagePickerControllerSourceTypePhotoLibrary)
        {

            [popoverController dismissPopoverAnimated:YES];

        }
        else
        {
            [picker  dismissModalViewControllerAnimated:YES];
            [picker release];

        }

    }   
    else
    {

        [picker dismissModalViewControllerAnimated:YES]; 
    }

}

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

{   
    UIImage *imageToScale=[info objectForKey:UIImagePickerControllerOriginalImage];

    flagImageSelected=YES;
    /*Set Image on the Btn with Image Insets.*/    
    //Image Insets TOP, LEFT, BOTTOM, RIGHT
    if([self isPad])
    {
        [btnImage setImageEdgeInsets:UIEdgeInsetsMake(31.0,33.0,36,36.0)];

        //imageToScale =[imageToScale scale:CGSizeMake(530, 546)];
        imageToScale=[imageToScale scaleToSize:CGSizeMake(530, 546)];  


    }
    else
    {
        [btnImage setImageEdgeInsets:UIEdgeInsetsMake(13.0,13.0,14.0,14.0)];
        imageToScale=[imageToScale scaleToSize:CGSizeMake(300, 300)];  

    }

    [btnImage setImage:imageToScale forState:UIControlStateNormal]; 



    if ([self isPad]) {

        if(picker.sourceType==UIImagePickerControllerSourceTypePhotoLibrary)
        {

            [popoverController dismissPopoverAnimated:YES];

        }
        else
        {
            [picker  dismissModalViewControllerAnimated:YES];
            [picker release];

        }

    }   
    else
    {
        [picker dismissModalViewControllerAnimated:YES];
        //[picker release];
    }
}
-(NSString *) getImagePath{

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSError *error;
    [[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:YES attributes:nil error:&error]; 
    return documentsDirectory;
}