2012-02-13 18 views
0

我試圖調整圖像的最大寬度爲1000px,但原始圖像分辨率的「比例」需要保持不變。即1000x1300或1000x1600等用原始比例調整UIImage的大小

我需要對下面的代碼進行哪些更改?

- (void)setImageAndConvertToThumb:(UIImage *)image { 
//image 
UIImage *sizedImg = [image scaleWithMaxSize:CGSizeMake(1000, 1000) quality:kCGInterpolationHigh]; 
NSData *data = UIImagePNGRepresentation(sizedImg); 
self.image = data; 

} 
+1

可能重複[Resize UIImage with aspect ratio?](http://stackoverflow.com/questions/1703100/resize-uiimage-with-aspect-ratio) – DarkDust 2012-02-13 14:30:07

回答

0

縱橫比僅通過高度(或反之亦然)除以寬度,所以僅通過使用相同的比率的原始圖像具有像這樣計算新的高度:

- (void)setImageAndConvertToThumb:(UIImage *)image { 
    //image 
    CGFloat newWidth = 1000; 
    CGFloat newHeight = newWidth * image.size.height/image.size.width; 
    UIImage *sizedImg = [image scaleWithMaxSize:CGSizeMake(newWidth, newHeight) quality:kCGInterpolationHigh]; 
    NSData *data = UIImagePNGRepresentation(sizedImg); 
    self.image = data; 
} 
+0

非常感謝你:) – CraigBellamy 2012-02-13 23:23:07