iOS 对图片进行压缩

来源:互联网 发布:网络本科教育 编辑:程序博客网 时间:2024/06/10 09:47

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info

{

    if ([info[UIImagePickerControllerOriginalImage]isKindOfClass:[UIImageclass]]) {

        UIImage *image = info[UIImagePickerControllerOriginalImage];

        

        //初始化imageNew为从相机中获得的--

        UIImage *imageNew = image;

        //设置image的尺寸

        CGSize imagesize = imageNew.size;

        if (image.size.width>image.size.height) {

            imagesize.height = image.size.height/image.size.width*ImageMax;

            imagesize.width =ImageMax;

        } else {

            imagesize.height =ImageMax;

            imagesize.width = image.size.width/image.size.height*ImageMax;

        }


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

        imageNew = [selfimageWithImage:imageNew scaledToSize:imagesize];

        NSData *imageData =UIImageJPEGRepresentation(imageNew,1);

        

        image = [UIImageimageWithData:imageData];

        

        if (_delegate && [_delegaterespondsToSelector:@selector(getImageSuccessfulImage:camera:)]) {

            

            [_delegategetImageSuccessfulImage:imagecamera:self->_isCamera];

        }

    }

    

    [picker dismissViewControllerAnimated:YEScompletion:nil];

}


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

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

{

    // Create a graphics image context

    UIGraphicsBeginImageContext(newSize);

    // Tell the old image to draw in this new context, with the desired

    // new size

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

    // Get the new image from the context

    UIImage* newImage =UIGraphicsGetImageFromCurrentImageContext();

    // End the context

    UIGraphicsEndImageContext();

    // Return the new image.

    return newImage;

}


0 0