Что такое imageset?

Imageset в Xcode — это именованная папка ресурса с файлами изображений и описанием Contents.json. Она лежит внутри каталога Assets.xcassets. Приложение обращается к ресурсу по имени, а каталог описывает, какой файл отвечает за каждый масштаб или представление.

Экспорт ресурсов изображений для iOS создает такую структуру папок из загруженной графики или уже разблокированного результата. Он может упаковать простой векторный SVG или отрисовать прозрачные варианты в PNG. Фотография не станет векторными контурами только потому, что ее положили в каталог.

Вектор — для простой масштабируемой графики

Выбирайте «Векторный SVG», если исходник — это SVG из сплошных контуров и простых фигур. Экспорт «запекает» поддерживаемую геометрию и записывает imageset с включенным Preserve Vector Data. SVG-ресурсам изображений нужна iOS 13 или новее.

Конвертер работает с намеренно урезанным набором векторных возможностей. Текст нужно заранее перевести в кривые, а для градиентов, масок, обрезки (clipping) и других эффектов в этом инструменте нужен PNG. Неподдерживаемые возможности вызывают ошибку, чтобы вы могли выбрать подходящую альтернативу. Всё небезопасное, например скрипт, удаляется и попадает в список; прочитайте предупреждения, прежде чем импортировать файлы.

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

PNG — для ресурсов фиксированного размера

Варианты в PNG принимают исходники в SVG, PNG, JPEG, WebP и HEIC. SVG отрисовывается в PNG, а у загруженных PNG, JPEG, WebP и HEIC удаляются метаданные. Прозрачность сохраняется. Это удобно, когда совместимый отрисованный эффект важнее редактируемой геометрии.

Ширина задается в пунктах, а не в итоговых пикселях. При ширине 64 пункта получатся такие файлы:

Масштаб Ширина в пикселях Имя файла
1× 64 artwork@1x.png
2× 128 artwork@2x.png
3× 192 artwork@3x.png

Высота следует исходным пропорциям. Исходник вдвое выше своей ширины даст при 1× изображение 64 на 128 пикселей. Если высокий исходник превышает допустимую высоту экспорта, выберите ширину поменьше. На векторный imageset настройка ширины не влияет — он сохраняет свой viewBox.

Импортируйте, не заменяя каталог

Распакуйте архив и найдите Assets.xcassets/artwork.imageset или такую же папку с выбранным вами именем ресурса. Перетащите этот imageset в свой каталог. Не заменяйте каталог целиком: в нем могут быть цвета, иконки и другие ресурсы, которые уже нужны приложению.

В SwiftUI на ресурс с именем artwork можно сослаться через Image("artwork"). Нужную раскладку и масштабирование задайте в самом приложении. Проверьте импортированный ресурс в Xcode и на устройстве, в том числе прозрачные края на светлом и темном фоне.

Imageset — это не SF Symbol, и поведение этого формата символов он не наследует. Это также не иконка приложения на экране запуска. Если нужен каталог ресурсов AppIcon, используйте генератор иконок приложений для Android и iOS, а для drawable интерфейса Android — конвертер SVG в Android VectorDrawable.