UIImage的缩小
有时候,项目中,要用到上传图片,从图片库里取出的图片有的太大了,而要上传的时候,会很费时间,而且也没必要太大,所以就把图片综缩小一下,再传!
#pragma UIImagePickerDelagate -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { [self.imagePopoverController dismissPopoverAnimated:YES]; /* 选取成功后在界面上进行显示 */ //压缩图片 int iWidth = image.size.width; int iHeight = image.size.height; if (iWidth>300) {//300你自定义大小,想要弄多大,就弄多大 iWidth = 300; iHeight = image.size.height*iWidth/image.size.width; if (iHeight>300) { iHeight = 300; iWidth = image.size.width*iHeight/image.size.height; } } image = [self scaleToSize:image :CGSizeMake(iWidth, iHeight)];//主要在这里 NSData* imageData = UIImagePNGRepresentation(image); [self saveImage:imageData WithName:@"pic.jpg"];//保存图片 }
//图片缩放 - (UIImage *)scaleToSize:(UIImage *)image :(CGSize)newsize { // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(newsize); // 绘制改变大小的图片 [image drawInRect:CGRectMake(0, 0, newsize.width, newsize.height)]; // 从当前context中创建一个改变大小后的图片 UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); // 返回新的改变大小后的图片 return scaledImage; }