在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
[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;
}
二、截图功能,实现用户想要截取图的RECT
- ( UIImage *)getImageByCuttingImage:( UIImage *)image Rect:( CGRect )rect{
// 大图 bigImage
// 定义 myImageRect ,截图的区域
CGRect myImageRect = rect;
UIImage * bigImage= image;
CGImageRef imageRef = bigImage. CGImage ;
CGImageRef subImageRef = CGImageCreateWithImageInRect (imageRef, myImageRect);
CGSize size;
size. width = rect. size . width ;
size. height = rect. size . height ;
UIGraphicsBeginImageContext (size);
CGContextRef context = UIGraphicsGetCurrentContext ();
CGContextDrawImage (context, myImageRect, subImageRef);
UIImage * smallImage = [ UIImage imageWithCGImage :subImageRef];
UIGraphicsEndImageContext ();
return smallImage;
}