2013-05-17 2 views
1

У меня есть программа, которая извлекает изображение из библиотеки, но я использую код, который я нашел в Интернете, чтобы изменить его размер, чтобы он мог поместиться на экране (в основном, это 640x960), но тогда он все равно будет слишком большим для отображения, поэтому в другом UIImage я копирую первое измененное изображение и повторно изменяя его, чтобы сделать его примерно на 1/4 экрана (или 160x240). Код заключается в следующем:Objective C - изменение размера UIImage

для ViewController.h:

UIImage *img; 
UIImage *thumb; 

-(UIImage*) scaleImage: (UIImage*)image toSize:(CGSize)newSize; 

(это, конечно, только код, связанный с моей проблемой)

для ViewController.m

-(UIImage*) scaleImage: (UIImage*)image toSize:(CGSize)newSize { 
    UIGraphicsBeginImageContext(newSize); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

и в том же файле m на другой функции функция scaleImage вызывается при нажатии кнопки с этими линиями:

[self scaleImage:img toSize:CGSizeMake(640, 960)]; 
thumb = img; 
[self scaleImage:thumb toSize:CGSizeMake(160, 240)]; 

В проекте я ранее смог успешно предоставить изображение для img, используя [info objectForKey:UIImagePickerControllerOriginalImage];, который будет изображением, выбранным из библиотеки. У меня уже «файл принадлежит» всем, чтобы эта функция выполнялась (и это происходит потому, что я создаю в ней UIAlert и он показывает, и NSLog для печати, когда scaleImage запускается, и он делает это дважды), но изображение никогда не изменился! Кто-нибудь знает, почему? Пожалуйста, дайте мне знать, спасибо всем, кто комментирует с помощью или предложениями!

+1

Когда я попытался изменить размер изображения в меньшем масштабе, изображение было на самом деле больше. Я нашел ваш scaleImage код в вашем вопросе выше, и это сработало. Спасибо, что задали вопрос и разместили свой код. :-) – Patricia

+0

и спасибо за сообщение этого, заставляет меня чувствовать, что я вносил больше, чем я на самом деле делаю =) – gfcf14

ответ

3

Ваш scaleImage метод возвращает масштабируемого изображения, например

thumb = [self scaleImage:img toSize:CGSizeMake(640, 960)]; 
+0

lol, поговорите о очевидных ошибках. Огромное спасибо!! – gfcf14

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