Обнаружение UIImage с помощью файла @2x

Итак, я делаю приложение для нового iPad с дисплеем Retina. Прямо сейчас я импортирую изображения в openGL через загрузчик UIImage, чтобы использовать изображения @2x для нового дисплея. Я также сделал так, что если коэффициент масштабирования экрана iPad равен 2,0, то он устанавливает масштаб моих изображений равным 0,5.

Это прекрасно работает с изображениями, у которых есть файл @2x, но некоторые из них не имеют, и в конечном итоге они становятся половинными и неуместными. Поэтому я хочу найти способ определить, когда UIImage использует изображение @2x вместо оригинала. Есть ли способ сделать это?

PS: я не хочу создавать файл @2x для каждого изображения и занимать лишнее место.


person Danegraphics    schedule 21.03.2012    source источник
comment
Вы можете повторно реализовать UIImage imageNamed: и вести запись каждого изображения. Не уверен, что есть более короткий/легкий/лучший путь.   -  person JoePasq    schedule 22.03.2012
comment
Я нашел ответ для тех, кто хочет знать. Вместо того, чтобы искать имя файла, UIImage имеет свойство, известное как «масштаб», которое имеет значение 2,0, если оно загружает изображение @2x, и 1,0 в противном случае. Это должно пригодиться.   -  person Danegraphics    schedule 22.03.2012


Ответы (1)


Используйте свойство scale объекта UIImage.

Из документации:

Если вы загружаете изображение из файла, имя которого содержит модификатор @2x, масштаб устанавливается равным 2,0. Если имя файла не включает модификатор, но имеет формат PNG или JPEG и имеет связанное значение DPI, вычисляется соответствующий масштабный коэффициент, который отражается в этом свойстве. Вы также можете указать явный коэффициент масштабирования при инициализации изображения из изображения Core Graphics. Предполагается, что все остальные изображения имеют масштабный коэффициент 1,0.

Если вы умножаете логический размер изображения (хранящийся в свойстве size) на значение этого свойства, вы получаете размеры изображения в пикселях.

person Erik B    schedule 22.03.2012