標籤:
將UIImage縮放到指定大小尺寸:
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
// 建立一個bitmap的context
// 並把它設定成為當前正在使用的context
UIGraphicsBeginImageContext(size);
// 繪製改變大小的圖片
[img drawInRect:CGRectMake(0, 0, size.width, size.height)];
// 從當前context中建立一個改變大小後的圖片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使當前的context出堆棧
UIGraphicsEndImageContext();
// 返回新的改變大小後的圖片
return scaledImage;
}
根據圖片的大小等比例壓縮返回圖片
02+(UIImage *)fitSmallImage:(UIImage *)image
03{
04 if (nil == image)
05 {
06 return nil;
07 }
08 if (image.size.width
09 {
10 return image;
11 }
12 CGSize size = [DSMDataConvert fitsize:image.size];
13 UIGraphicsBeginImageContext(size);
14 CGRect rect = CGRectMake(0, 0, size.width, size.height);
15 [image drawInRect:rect];
16 UIImage *newing = UIGraphicsGetImageFromCurrentImageContext();
17 UIGraphicsEndImageContext();
18 return newing;
19}
+ (CGSize)fitsize:(CGSize)thisSize
02{
03 if(thisSize.width == 0 && thisSize.height ==0)
04 return CGSizeMake(0, 0);
05 CGFloat wscale = thisSize.width/IMAGE_MAX_SIZE_WIDTH;
06 CGFloat hscale = thisSize.height/IMAGE_MAX_SIZE_GEIGHT;
07 CGFloat scale = (wscale>hscale)?wscale:hscale;
08 CGSize newSize = CGSizeMake(thisSize.width/scale, thisSize.height/scale);
09 return newSize;
10}
1. 用下面的方法選中你要壓縮的圖片,然後輸出到sentencePic這個uiimageview中,你調用這個sentencepic發送到伺服器就行了。
2. 設定壓縮比例大小的是這個:imageFrame。你在viewdidload中,CGRect imageFrame = sentencePic.frame; //其中sentencePic.frame是你想要截取圖片的尺寸。自行設定
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
UIImage *sharkenImage = shrinkImage(chosenImage, imageFrame.size);
sentencePic.image = sharkenImage;
[picker dismissModalViewControllerAnimated:YES];
}
static UIImage *shrinkImage(UIImage *original, CGSize size){
CGFloat scale = [UIScreen mainScreen].scale;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(nil, size.width *scale, size.height *scale, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst);//NULL
CGContextDrawImage(context, CGRectMake(0, 0, size.width *scale, size.height *scale), original.CGImage);
CGImageRef shrunken = CGBitmapContextCreateImage(context);
UIImage *final = [UIImage imageWithCGImage:shrunken];
CGContextRelease(context);
CGImageRelease(shrunken);
return final;
}
ios UIImage縮放