2013-03-16 5 views
0

У меня есть UIImage, что я знаю его хорошо до масштабирования. Мне нужно масштабировать его, чтобы я мог установить его в ccsprite. я масштабировать его, но потом я получил белое изображение ..Изменение размера изображения дает белое изображение

UIImage *scaled=[newImage copy]; 
//scale the image 
CGRect screenRect = CGRectMake(0, 0, 640.0, 960.0); 
UIGraphicsBeginImageContext(screenRect.size); 
scaled = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
CCSprite * image = [CCSprite spriteWithCGImage:scaled.CGImage 
              key:[NSString stringWithFormat:@"%d",[localImagesSpritesArray count]]]; 

Что это может быть?

+0

Где вы рисуете изображение, которое нужно масштабировать в новом контексте? ** hint **: 'CGContextDrawImage (context, screenRect, scale.CGImage);' – Till

+1

Почему вы создаете копию 'newImage', а затем выбрасываете результат? – rmaddy

+0

Кроме того, вы не должны жестко закодировать 'screenRect'. Вы должны получить его из UIScreen. Вы также можете использовать 'UIGraphicsBeginImageContextWithOptions' вместо' UIGraphicsBeginImageContext'; версия «WithOptions» позволяет указать масштабный коэффициент контекста или попросить его автоматически определить. Функция, которую вы используете безоговорочно, использует масштабный коэффициент «1.0», который предназначен для изображений без сетчатки. –

ответ

1
UIGraphicsBeginImageContext(screenRect.size); 
[newImage drawInRect:screenRect]; //you have to add this line 
scaled = UIGraphicsGetImageFromCurrentImageContext(); 
+0

спасибо, но это как-то изменит соотношение изображения и растягивает его. Какие отношения между добавленной линией и разрешениями экрана? они должны быть одинаковыми? – Curnelious

+0

@Rant: Вы сказали, чтобы рисовать в этом прямоугольнике, поэтому он будет масштабироваться до размера этого прямоугольника. Если он должен растянуться, чтобы достичь этого размера, он растянется. Если вы хотите сделать аппроксимацию аспект, см. Этот вопрос, сверху в списке «Связанный» с правой стороны: http://stackoverflow.com/q/1703100/30461 –

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