您的位置:首页 > 移动开发 > IOS开发

iOS 对图片进行压缩

2017-01-05 17:15 169 查看
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString
*,id> *)info

{

    if ([info[UIImagePickerControllerOriginalImage]
isKindOfClass:[UIImage
class]]) {

        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 = [self
imageWithImage:imageNew
scaledToSize:imagesize];

        NSData *imageData =
UIImageJPEGRepresentation(imageNew,
1);

        

        image = [UIImage
imageWithData:imageData];

        

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

            

            [_delegate
getImageSuccessfulImage:image
camera:self->_isCamera];

        }

    }

    

    [picker dismissViewControllerAnimated:YES
completion: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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片压缩