2012-08-23 4 views
1

У меня есть программно созданный UIImage образ, используя этот вид кода:UIImageView и масштабный фактор

UIGraphicsBeginImageContextWithOptions(CGSizeMake(128, 128), NO, 0.0f); 
// Render in context 
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Поскольку мои варианты контекста указать масштаб 0, на сетчатку устройствах будут установлены на 2, и Я могу подтвердить, что в результате получается свойство шкалы UIImage.

Проблема заключается в том, что размер этого изображения составляет 128x128, масштаб 2. Когда я помещаю его в UIImageView размером 64x64 и contentMode = Center, он отображает мое изображение вне изображения, предположительно рендеринга в квадрат 128x128 без какого-либо масштабирования.

Мое понимание графики сетчатки состояло в том, что если изображение имеет коэффициент масштабирования 2.0, его следует визуализировать с размером 1/2, что приводит к увеличению DPI. Итак, я ожидал, что изображение будет отображать изображение 64х64 при качестве сетчатки. Где я ошибаюсь?

ответ

0

Изображение будет отображаться с размером, которое вы ему даете - 128 x 128. Масштабный коэффициент означает, что у вас будут лучшие визуализированные кривые и т. Д., Но изображение будет по-прежнему 128 x 128 точек. Как указано в документации, параметр размера:

Размер (измеряется в точках ) нового контекста растрового. Это представляет собой размер изображения, возвращаемого функцией UIGraphicsGetImageFromCurrentImageContext.

Если вы хотите изображение с качеством сетчатки размером 64x64, используйте размер 64x64 для вашего контекста.

+0

Спасибо. Могу ли я спросить, как вы быстро задали этот вопрос? Я борюсь с задержкой RSS-канала. –

+0

Просто оказалось, что на главной странице, когда он появился. Я не использую RSS-канал, и я настроил свои любимые и проигнорированные теги. – jrturton

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