1> 把图片转为 base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来
//
获取沙盒路径
NSString *path_sandox = NSHomeDirectory();
//
创建一个存储
plist
文件的路径
NSString
*newPath = [path_sandox
stringByAppendingPathComponent
:
@"/Documents/pic.plist"
];
UIImage
*image = [
UIImage
imageNamed
:
@"a.jpg"
];
NSMutableArray
*arr = [[
NSMutableArray
alloc
]
init
];
[arr
addObject
:image];
[self writeImageInPlist:arr plistPath:newPath];
=================================================================================
/**
* 将 UIImage 对象写入 plist 文件
*/
- ( BOOL )writeImageInPlist:( NSArray *)images plistPath:( NSString *)path
{
NSMutableArray *arr = [[ NSMutableArray alloc ] init ];
for ( UIImage *image in images)
{
NSData *data = UIImageJPEGRepresentation (image, 1.0f );
NSString *strimage64 = [data base64EncodedStringWithOptions : 0 ];
[arr addObject :strimage64];
}
// 写入 plist 文件,要是未找到该文件会自动创建
if ([arr writeToFile :path atomically : YES ])
{
return YES ;
}
else
{
return NO ;
}
* 将 UIImage 对象写入 plist 文件
*/
- ( BOOL )writeImageInPlist:( NSArray *)images plistPath:( NSString *)path
{
NSMutableArray *arr = [[ NSMutableArray alloc ] init ];
for ( UIImage *image in images)
{
NSData *data = UIImageJPEGRepresentation (image, 1.0f );
NSString *strimage64 = [data base64EncodedStringWithOptions : 0 ];
[arr addObject :strimage64];
}
// 写入 plist 文件,要是未找到该文件会自动创建
if ([arr writeToFile :path atomically : YES ])
{
return YES ;
}
else
{
return NO ;
}
}
=================================================================================
将 Base64 字符串转换成UIImage 对象
NSData
*decodedImageData = [[
NSData
alloc
]
initWithBase64EncodedString
:strimage64
options
:
NSDataBase64DecodingIgnoreUnknownCharacters
];
UIImage *decodedImage = [UIImageimageWithData:decodedImageData];
2> 把图片直接保存到沙盒中,然后再把路径存储起来,等到用图片的时候先获取图片的路径,再通过路径拿到图片
/**
* 保存 UIImage 对象到本地缓存目录中的相对路径
*/
+ ( NSString *)saveImageInLocal:( UIImage *)image
{
NSString *path = [ NSString stringWithFormat : @"/%@.png" , [ NSString getRandomStr ]];
NSString *imagePath = [ kDocumentFolder stringByAppendingString :path];
[ UIImagePNGRepresentation (image) writeToFile :imagePath atomically : YES ];
return path;
}
/**
* 从本地目录获取图片
*/
+ ( UIImage *)getImageInLocal:( NSString *)imagePath
{
return [ UIImage imageWithContentsOfFile :imagePath];
* 保存 UIImage 对象到本地缓存目录中的相对路径
*/
+ ( NSString *)saveImageInLocal:( UIImage *)image
{
NSString *path = [ NSString stringWithFormat : @"/%@.png" , [ NSString getRandomStr ]];
NSString *imagePath = [ kDocumentFolder stringByAppendingString :path];
[ UIImagePNGRepresentation (image) writeToFile :imagePath atomically : YES ];
return path;
}
/**
* 从本地目录获取图片
*/
+ ( UIImage *)getImageInLocal:( NSString *)imagePath
{
return [ UIImage imageWithContentsOfFile :imagePath];
}