zoukankan      html  css  js  c++  java
  • IOS开发保存图片到Documents目录及PNG,JPEG格式相互转换

    先看下面的代码:

    更多阅读请访问http://www.hopean.com

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

        NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

        if ([mediaType isEqualToString:@"public.image"]){

            image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

            NSData *data;

            if (UIImagePNGRepresentation(image) == nil) {

                data = UIImageJPEGRepresentation(image1);

            } else {

                data = UIImagePNGRepresentation(image);

            }

            

            NSFileManager *fileManager = [NSFileManager defaultManager];

            NSString *filePath = [NSString stringWithString:[self getPath:@"image1"]];         //将图片存储到本地documents


             [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];

             [fileManager createFileAtPath:[filePath stringByAppendingString:@"/image.png"contents:dataattributes:nil];

            

            UIImage *editedImage = [[UIImage allocinit];

            editedImage = image;

            CGRect rect = CGRectMake(006496);

            UIGraphicsBeginImageContext(rect.size);

            [editedImage drawInRect:rect];

            editedImage = UIGraphicsGetImageFromCurrentImageContext();

            

            UIButton *imageButton = [UIButton buttonWithType:UIButtonTypeCustom];

            imageButton.frame = CGRectMake(10106496);

            [imageButton setImage:editedImage forState:UIControlStateNormal];

            [self.view addSubview:imageButton];

            [imageButton addTarget:self action:@selector(imageAction:)forControlEvents:UIControlEventTouchUpInside];


            [ipc dismissModalViewControllerAnimated:YES];

        } else {

            NSLog(@"MEdia");

        }

        

    上面的代码是当从相册里面选取图片之后保存到本地程序沙盒,在上面我们得到的图片中不能够得到图片名字,以及不清楚图片格式,所以这个时候我们需要将其转换成NSdata二进制存储,

     image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

    NSData *data;

            if (UIImagePNGRepresentation(image) == nil) {

                data = UIImageJPEGRepresentation(image1);

            } else {

                data = UIImagePNGRepresentation(image);

            }

    UIImagePNGRepresentation转换PNG格式的图片为二进制,如果图片的格式为JPEG则返回nil;

     [fileManager createFileAtPath:[filePath stringByAppendingString:@"/image.png"contents:data attributes:nil];    将图片保存为PNG格式

     [fileManager createFileAtPath:[filePath stringByAppendingString:@"/image.jpg"contents:data attributes:nil];   将图片保存为JPEG格式


    我们也可以写成下面的格式存储图片

    NSString *pngImage = [filePath stringByAppendingPathComponent:@"Documents/image.png"];

    NSString *jpgImage = [filePath stringByAppendingPathComponent:@"Documents/image.jpg"];


    [data writeToFile:pngImage atomically:YES];

    [data writeToFile:jpgImage atomically:YES];

    http://www.hopean.com

    文章出处:http://blog.csdn.net/sanpintian/article/details/7418755

  • 相关阅读:
    存在和本质
    数据库的日志机制
    【msql】关于redo 和 undo log
    乐观锁是基于比较的无锁并发控制机制
    两段锁协议和防止死锁的一次封锁法
    并发编程沉思录
    什么是B-Tree
    二叉树与b树的性能区别:计算、层级与io
    认知模型
    复杂性、认知与心理学
  • 原文地址:https://www.cnblogs.com/hopeanCom/p/2845449.html
Copyright © 2011-2022 走看看