Подтвердить что ты не робот

Xcode 6 позволяет VECTOR изображения активов... как их использовать?

Я возился с активами Xcode 6 против изображений, когда заметил что-то очень интересное: теперь мы можем указывать на них векторные изображения (перейдите к панели утилит после выбора Images.xcassets).

Я попробовал небольшое приложение (содержащее большой UIImageView) с изображением .SVG (не работало), затем .EPS (тоже не работало), и я наконец попробовал .PDF Это сработало! Ну, хотя я видел изображение, оно оказалось пиксельным, а не векторизованным.

Так что, похоже, Apple готовит почву для векторных иконок/изображений. Нет больше миллиардов версий значков приложений, больше изображений "@2x". Но может ли кто-нибудь разблокировать эту функцию?

4b9b3361

Ответ 1

Вот некоторые из моих мыслей после некоторых экспериментов по векторным ресурсам:

1. Поддержка времени компиляции

После нескольких испытаний я считаю, что это просто поддержка времени компиляции. Xcode генерирует все изображения 1x, 2x и 3x во время компиляции. Это означает, что он работает со старыми версиями iOS. В то же время это означает, что в финальной сборке он все еще находится в формате PNG, и вы не можете получить изображение без потерь с векторного файла.

2. Почему PDF вместо SVG или других форматов

Для SVG и других форматов векторное изображение не имеет информации о фактическом размере, а в формате PDF - информация о размере. Я думаю, что Xcode 6 использует информацию о размере в формате PDF в качестве фактического размера, а затем генерирует 2x 3x файлы из векторного изображения.

Size info in PDF

3. Размер файла PDF не имеет значения

В начале мы обеспокоены тем, что PDF файл будет намного больше, чем PNG. Мы попробовали http://smallpdf.com/, чтобы сжать его, и он работает очень хорошо. Но если исходный файл PDF не включен в сборку, как я уже говорил, размер файла PDF не имеет значения.

Будет продолжать редактирование этого сообщения, если найду что-нибудь другое.

РЕДАКТИРОВАТЬ 14-09-25

@mredig упомянул, что для iOS он генерирует растровые изображения во время компиляции, но для OSX он включает в себя векторное изображение в масштабируемой форме.

через: http://martiancraft.com/blog/2014/09/vector-images-xcode6/

Ответ 2

Вот как можно поэкспериментировать с векторными изображениями в каталоге ресурсов в Xcode 6:

  1. Создайте новый набор изображений.

  2. Выберите пустую ячейку изображения в наборе изображений и переключите всплывающее окно в инспекторе атрибутов на "Векторы". Теперь у вас есть один универсальный слот для изображений.

  3. Перетащите векторный PDF в этот слот.

Теперь, где бы ни использовалось это изображение, оно масштабируется по своему контексту (например, представление изображения фиксированного размера) без растеризации, как показано на этом снимке экрана:

enter image description here

РЕДАКТИРОВАТЬ Несмотря на этот ответ, рисунок в формате PDF был растеризован. Но теперь смотрите fooobar.com/questions/42263/...: в Xcode 9 векторный PDF масштабируется правильно, без растеризации.

РЕДАКТИРОВАТЬ В Xcode 11 эта формула работает: в каталоге активов вы должны установить всплывающее меню "Масштаб" на "Индивидуальные шкалы" и поместить векторное изображение в слот 1x. Установите флажок Сохранить векторные данные. Готово.

Ответ 3

вы можете использовать этот онлайн-инструмент для конвертации изображений из svg в pdf

http://www.fileformat.info/convert/image/svg2pdf.htm

1- загрузить изображение

2- выберите ширину: 24px, высота: 24px

3- копирование в проект xcode

4- перейдите к Images.xcassets

5- щелкните правой кнопкой мыши и создайте новый набор изображений

6- с правой панели выберите (инспектор атрибутов)

7- изменить типы на вектор

8- перетащите свой pdf файл там

9 - используйте его в своем проекте

Ответ 4

один совет - создайте разрешение PDF @2x и имя файла с помощью @2x ([email protected]) сделайте это, и вы получите идеальные точные и контрастные изображения, специально для iPad 2 и mini. введите описание изображения здесь

Ответ 5

Я просто создаю пользовательский шрифт, скажем, значки или даже логотипы приложений, и использую его таким образом и вытаскиваю его в свое приложение. Я могу настроить размеры шрифтов для устройств и разрешения экрана очень легко.

Ответ 6

Если вы ищете ответ на вопрос: "Как я могу использовать векторную графику в своем приложении iOS и всегда масштабировать их с прекрасным совершенством?", то я могу настоятельно рекомендовать UIImage+PDF из https://github.com/mindbrix/UIImage-PDF

Я считаю, что это работает совершенно блестяще. Вместо того, чтобы иметь все изображения в формате PNG из трех разных разрешений, у меня теперь есть маленький маленький PDF файл для каждого изображения. Я могу отобразить их следующим образом:

// Objective C:
self.icon.image = [UIImage imageWithPDFNamed:@"icon.pdf" fitSize:self.icon.frame.size];

// Swift:
icon.setImage(UIImage(PDFNamed: "icon.pdf", fitSize: icon.frame.size))

В дополнение к fitSize: также есть atWidth:, atHeight и atSize:.

Я использую UIImage+PDF для всех изображений, которые могут быть векторизованы, и используйте только PNG для фотоизображений.

Я также запускаю свои файлы PDF с помощью http://smallpdf.com/compress-pdf, чтобы обеспечить наименьшие размеры файлов для них.

Эрик

Ответ 7

В тех случаях, когда вы создаете значки приложений, PDF не будет работать. Возможно, вы захотите взглянуть на проект, который я только что создал, который называется Speculid. Он может создавать PNG, PDF и т.д. Из исходных изображений, включая файлы SVG. Обратная связь будет принята с благодарностью.