iOS 对本地图片的压缩

来源:互联网 发布:java中的工厂模式 编辑:程序博客网 时间:2024/05/15 09:03

//选择图或者拍照后的回调

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

{

    UIImage * image = [infoobjectForKey:UIImagePickerControllerOriginalImage];

    

    //设置image的尺寸

    CGSize imagesize = image.size;

    imagesize.height = 400;

    imagesize.width = 400;

    //对图片大小进行压缩--

    image = [self imageWithImage:image scaledToSize:imagesize];

    

    //对图片压缩还可以用这个方法

    NSData * data = UIImageJPEGRepresentation(image,0.1);

    

    NSData * imageData = UIImageJPEGRepresentation(image,1);

    NSLog(@"==================%d",(int)data.length /1024);

    NSLog(@"------------------%d",(int)imageData.length /1024);


    [self UploadImage:image];

    

    [picker dismissViewControllerAnimated:YES completion:^{}];

}


//对图片尺寸进行压缩--

-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize

{

    // 创建一个图形上下文形象

    UIGraphicsBeginImageContext(newSize);

    

    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

    

    // 得到新图像

    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

    

    // 结束上下文

    UIGraphicsEndImageContext();

    

    return newImage;

}

0 0