Как конвертировать JPG или PNG в SVG в IOS?

Мне нравится конвертировать файл.jpg или.png в формат.svg, который можно отобразить в UIImageView. Есть ли способ сделать это в Objective-C?

2 ответа

Вы не должны использовать изображения SVG в Xcode:

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

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

SVG - это вектор на основе XML, а в Xcode вы также можете использовать векторы, но в формате PDF и следовать этому руководству.

В двух словах:

  1. Создание PDF-файлов с активом @1x (во время компиляции он генерирует @2 и @3)
  2. Установите масштабные коэффициенты на один вектор:

  1. Перетащите PDF-файл в универсальный раздел All
  2. Обратитесь к своему изображению по имени, как для любого файла PNG

    [UIImage imageNamed:@”Home”]
    

Кроме того, stackru (возможно) связанный ответ

Чтобы преобразовать PNG в SVG (что очень разумно и правильно), вам нужно приложение или библиотека, называемая "трассировщиком". Он будет отслеживать контуры фигур, градиентов и т. Д. И преобразовывать их в векторные представления.

В простых случаях это легко сделать на компьютере; для сложных случаев (например, градиентов) это очень сложная проблема AI / Computer-Vision, и вам нужно потратить $$$ на высококачественные решения в области кодирования и / или найти исследования уровня PhD, которые решают эту проблему!

Бесплатный трассировщик, который отлично справляется со своей задачей, встроен в Inkscape (с открытым исходным кодом) - google "трассировка inkscape", где вы найдете инструкции по его использованию и для создания файла.svg, который вы можете использовать. Это ручной процесс.

Чтобы использовать это приложение, вам нужно найти библиотеку трассировки для iOS. Все библиотеки, которые использует Inkscape, имеют открытый исходный код, так что вы можете попробовать конвертировать их в iOS - они написаны на C, так что это может быть довольно легко.

Другие вопросы по тегам