Почему эти UIImages такие "размытые"? - PullRequest
0 голосов
/ 24 марта 2011

В приложении, над которым я работаю, у меня есть несколько UIImage с, которые по некоторым причинам получаются очень размытыми. Это особенно относится к двум значкам, которые я использую, которые довольно маленькие (80x15 и 65x15).

Top is original, below is blurry

iPad Simulator

(Обновление: добавлен вывод на iPad Simulator - он размыт, как и на выходе iPad)

Слева вверху и справа - оригинальные изображения, слева внизу и справа - то, как они выглядят на iPad. На самом деле я получил жалобы на то, что они ужасно размыты от пользователей, так что это не только я.

Код, в котором один из них установлен, выглядит следующим образом (может отображать код для другого по запросу):

UIButton *bWeb = [[UIButton alloc] initWithFrame:
    CGRectMake(attriboffset, height - 20.f, 65.f, 15.f)];

[bWeb addTarget:self action:@selector(clickWebLink:)
    forControlEvents:UIControlEventTouchUpInside];

bWeb.userInteractionEnabled = YES;

[bWeb setImage:[UIImage imageNamed:@"button-weblink-65x15.png"] 
    forState:UIControlStateNormal];
[bWeb setImage:[UIImage imageNamed:@"button-weblink-highlighted-65x15.png"] 
    forState:UIControlStateHighlighted];

[self addSubview:bWeb];
[bWeb release];

Исходные изображения (если вы считаете, что это может быть проблема с форматированием реальных файлов PNG): cc-by.png, weblink.png

Ответы [ 4 ]

3 голосов
/ 24 марта 2011

Убедитесь, что все числа в кадре UIButton округлены / усечены до целых.

2 голосов
/ 24 марта 2011

Что такое attriboffset?

Как говорит Хоха, если числа не являются целыми числами, вы получите дробные смещения, а устройства сделают некоторое размытое сглаживание, чтобы компенсировать это.Числа не должны иметь дробей.

0 голосов
/ 24 марта 2011

Откройте ваши изображения в режиме предварительного просмотра и сохраните их.

0 голосов
/ 24 марта 2011

Я думаю, что по какой-то причине изображение отображается с какой-то ненужной обработкой, которая вызывает потерю качества.

Попробуйте изменить свойство contentMode вашей кнопки UIB на UIViewContentModeCenter. По умолчанию UIViewContentModeStretch.

...