• 保存图片到本地和相册


    1.保存到iOS相册需要引入QuartzCore.framework框架,具体代码如下:
    .h文件
    #import <QuartzCore/QuartzCore.h>
    UIImageView *imageView;
    @property (nonatomic, retain) IBOutlet UIImageView *imageView;
    .m文件
    UIGraphicsBeginImageContext(imageView.bounds.size);
    [imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *temp = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(temp, nil, nil, nil);

    2.保存图片到本地

    -(UIImage *) getImageFromURL:(NSString *)fileURL {
        NSLog(@"执行图片下载函数");
        UIImage * result;
        
        NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
        result = [UIImage imageWithData:data];
        
        return result;
    }
    
    
    -(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
        if ([[extension lowercaseString] isEqualToString:@"png"]) {
            [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
        } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
            [UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
        } else {
            //ALog(@"Image Save Failed
    Extension: (%@) is not recognized, use (PNG/JPG)", extension);
            NSLog(@"文件后缀不认识");
        }
    }
    
    保存
    -(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
        UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];
        
        return result;
    }
    NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSLog(@"保存路径:%@",documentsDirectoryPath);
        //Get Image From URL
        UIImage * imageFromURL = [self getImageFromURL:@"http://file.duteba.com/phone/2009/04/5/ftGxL8kcUL.jpg"];
        
        //Save Image to Directory
        [self saveImage:imageFromURL withFileName:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath];
        
        //Load Image From Directory
        UIImage * imageFromWeb = [self loadImage:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath];
        [img setImage:imageFromWeb];
        
        //取得目录下所有文件名
        NSArray *file = [[[NSFileManager alloc] init] subpathsAtPath:documentsDirectoryPath];
        //NSLog(@"%d",[file count]);
        NSLog(@"%@",file);
        显示
    NSString *documentsDirectory2 = [path2 objectAtIndex:0]; //path数组里貌似只有一个元素
        //字符串拼接得到文件完整路径
        NSString *filestr = @"/MyImage.jpg";
        NSString *newstr = [documentsDirectory2 stringByAppendingString:filestr];
        NSLog(@"完整路径是:%@",newstr);
        
        NSData *dd = [NSData dataWithContentsOfFile:newstr];
        [img222 setImage:[UIImage imageWithData:dd]];
    另外,还可以将图片的路径保存在plist文件里,这样可以避免过多的IO操作。
  • 相关阅读:
    PHP上传文件到阿里云OSS,nginx代理访问
    知识点
    WEB安全----XSS和CSRF
    note3
    linux crontab 执行任务(7秒执行)
    composer的自动加载机制(autoload)
    php-fpm的执行方式 (进程管理模式)
    CSS3:pointer-events | a标签禁用
    CSS3: @font-face 介绍与使用
    css公共样式 | 标签元素初始化
  • 原文地址:https://www.cnblogs.com/songwentao/p/4425391.html
Copyright © 2020-2023  润新知