iOS 本地存取图片

来源:互联网 发布:head first python 2 编辑:程序博客网 时间:2024/06/13 08:47

@interface ImageSaveHelper :NSObject


/**

 *  将图片数组以arrayName存储

 *

 *  @param array    图片数组,数组元素是UIImage

 *  @param nameArray图片名称数组,数组元素是NSString

 *  @param arrayName存储图片文件名称

 */

+(void)saveImageArray:(NSMutableArray *)array imageNameArray:(NSMutableArray *)nameArray andArrayName:(NSString *)fileName;




/**

 *  获取单张图片

 *

 *  @param imageName图片名称

 *  @param fileName 文件夹名称

 *

 *  @return图片

 */

+(UIImage *)getImageWithImageName:(NSString * )imageName andFileName:(NSString *)fileName;



/**

 *  获取文件名称的数组

 *

 *  @param fileName文件夹名称

 *

 *  @return文件名称组成的数组

 */

+(NSArray *)getImageNameArrayWithName:(NSString *)fileName;



/**

 *  获取arrayName文件夹下所有图片

 *

 *  @param arrayName文件名称

 *

 *  @return返回元素UIImage组成的数组

 */

+(NSMutableArray *)getImageArrayWithName:(NSString *)fileName;




/**

 *  删除fileName文件夹下名称为imageName的文件

 *

 *  @param imageName image名称

 *  @param fileName 文件夹名称

 *

 *  @return是否删除成功

 */

+(BOOL)deleteImageName:(NSString * )imageName withFileName:(NSString *)fileName;






#import "ImageSaveHelper.h"


@implementation ImageSaveHelper



/**

 *  将图片数组以arrayName存储

 *

 *  @param array    图片数组,数组元素是UIImage

 *  @param nameArray图片名称数组,数组元素是NSString

 *  @param arrayName存储图片文件名称

 */

+(void)saveImageArray:(NSMutableArray *)array imageNameArray:(NSMutableArray *)nameArray andArrayName:(NSString *)fileName{

    

    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    

    NSString * path = [paths[0]stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManagerdefaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,此处createPath为需要新建的文件夹的绝对路径

        

        [[NSFileManagerdefaultManager] createDirectoryAtPath:pathwithIntermediateDirectories:YESattributes:nilerror:nil];//创建文件夹

      }


    for (int i =0 ; i < array.count; i++) {

        

        NSString *filePath = [pathstringByAppendingPathComponent:[NSStringstringWithFormat:@"%@.png",nameArray[i]]];  // 保存文件的名称

        

        [UIImagePNGRepresentation(array[i])writeToFile: filePath    atomically:YES];

    }

    


}


/**

 *  获取文件名称的数组

 *

 *  @param fileName文件夹名称

 *

 *  @return文件名称组成的数组

 */

+(NSArray *)getImageNameArrayWithName:(NSString *)fileName{


    NSArray * imageNameArray = [NSArrayarray];

    

    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    

    NSString * path = [paths[0]stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManagerdefaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return imageNameArray;

    }

    

    //此文件夹下所有图片名称

    NSArray *filesNameArray = [[NSFileManagerdefaultManager] subpathsOfDirectoryAtPath:patherror:nil];

    

    return filesNameArray;


}


/**

 *  获取arrayName文件夹下所有图片

 *

 *  @param arrayName文件名称

 *

 *  @return返回元素UIImage组成的数组

 */

+(NSMutableArray *)getImageArrayWithName:(NSString *)fileName{


    NSMutableArray * imageArray = [NSMutableArrayarray];

    

    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    

    NSString * path = [paths[0]stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManagerdefaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return imageArray;

    }

    

    //此文件夹下所有图片名称

    NSArray *filesNameArray = [[NSFileManagerdefaultManager] subpathsOfDirectoryAtPath:patherror:nil];

    

    if (filesNameArray && filesNameArray.count !=0 ) {

        

        for (int i =0 ; i < filesNameArray.count; i++) {

            

            UIImage * image = [UIImageimageWithContentsOfFile:[path stringByAppendingPathComponent:filesNameArray[i]]];

            

            [imageArray addObject:image];

            

        }

        

    }


    return imageArray;


}

/**

 *  获取单张图片

 *

 *  @param imageName图片名称

 *  @param fileName 文件夹名称

 *

 *  @return图片

 */

+(UIImage *)getImageWithImageName:(NSString * )imageName andFileName:(NSString *)fileName{

    

    UIImage * image = [[UIImagealloc]init];


    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    

    NSString * path = [paths[0]stringByAppendingPathComponent:fileName];

    

    if (![[NSFileManagerdefaultManager] fileExistsAtPath:path]){//判断createPath路径文件夹是否已存在,不存在直接返回

        

        return image;

    }

    

   image = [UIImageimageWithContentsOfFile:[path stringByAppendingPathComponent:imageName]];

    

    return image;


}

/**

 *  删除fileName文件夹下名称为imageName的文件

 *

 *  @param imageName image名称

 *  @param fileName 文件夹名称

 *

 *  @return是否删除成功

 */

+(BOOL)deleteImageName:(NSString * )imageName withFileName:(NSString *)fileName{

    

    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    

    NSString * path = [paths[0]stringByAppendingPathComponent:fileName];

    

    NSString * pathFull = [pathstringByAppendingPathComponent:[NSStringstringWithFormat:@"%@.png",imageName]];

    

    if([[NSFileManagerdefaultManager] fileExistsAtPath:pathFull])//如果存在临时文件的配置文件

    {

        

       return  [[NSFileManagerdefaultManagerremoveItemAtPath:pathFullerror:nil];

        

    }

    

    returnNO;


}



0 0
原创粉丝点击