2023年12月21日发(作者:)

IOS中修改图片的大小:修改分辨率和裁剪

在IOS开发中,经常有限制图片文件大小的,有的用户图片很大,导致上传时间慢,造成问题。

如:微信分享中,如果图片的大小好像大于50kbytes,就分享失败,而且没有任何提示。

所以,我添加了两个函数:

一、修改当前图片的大小,newSize是新的size尺寸,这个方法帮助用户获取到更小的图片。

但是这个newSize的尺寸建议跟原图一样,不然图片就变形了。

- (UIImage*)imageWithImageSimple:(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

[imagedrawInRect:CGRectMake(,,,)];

// Get the new image from the context

UIImage* newImage =UIGraphicsGetImageFromCurrentImageContext();

// End the context

UIGraphicsEndImageContext();

// Return the new image.

returnnewImage;

}

二、截图功能,实现用户想要截取图的RECT

- (UIImage*)getImageByCuttingImage:(UIImage*)image Rect:(CGRect)rect{

//大图bigImage

//定义myImageRect,截图的区域

CGRectmyImageRect = rect;

UIImage* bigImage= image;

CGImageRefimageRef = e;

CGImageRefsubImageRef =CGImageCreateWithImageInRect(imageRef, myImageRect);

CGSizesize;

= ;

= ;

UIGraphicsBeginImageContext(size);

CGContextRefcontext =UIGraphicsGetCurrentContext();

CGContextDrawImage(context, myImageRect, subImageRef);

UIImage* smallImage = [UIImageimageWithCGImage:subImageRef];

UIGraphicsEndImageContext();

returnsmallImage;

}