2012-02-13 6 views
0

Я пытаюсь изменить размер изображения с максимальной шириной 1000 пикселей, но «соотношение» исходного разрешения изображения должно оставаться неизменным. то есть 1000x1300 или 1000x1600 и т. д.Resize UIImage с исходным соотношением

Какие изменения мне необходимо внести в код ниже?

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

} 
+1

возможно дубликат из [Изменить размер UIImage с соотношением сторон?] (http://stackoverflow.com/questions/1703100/resize-uiimage-with-aspect-ratio) – DarkDust

ответ

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

Смежные вопросы