Может ли iPhone отображать векторные графические файлы напрямую? Какие форматы поддерживаются? - PullRequest
5 голосов
/ 01 марта 2010

Можно ли отобразить файл векторного изображения на iPhone так же, как можно отобразить файл растрового изображения (png, jpeg)? Я пробовал файлы в формате eps и pdf, но ни один из них не работает - они правильно отображаются в Интерфейсном Разработчике, но не отображаются при запуске.

Консоль выводит сообщение в виде строки «Не удалось загрузить изображение« image.pdf », на которое ссылается перо в комплекте с идентификатором com.yourcompany.project»

Все мои поиски связаны с обсуждением рисования векторных файлов с использованием OpenGL и т. Д. Это единственный способ? Поскольку не упоминается поддержка векторных файлов, я не уверен, что мои файлы не загружаются из-за проблем с файлами (я пробовал разные версии) или из-за того, что они не поддерживаются.

Ответы [ 5 ]

4 голосов
/ 28 июня 2010

Можно рендерить изображения в формате PDF, а также создавать их с помощью Core Graphics. Примерно так:

void DrawPDF (CGContextRef context, NSString *name)
{
    NSURL *url = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: name ofType: @"pdf"]];

    CGPDFDocumentRef doc = CGPDFDocumentCreateWithURL((CFURLRef)url);
    CGPDFPageRef page = CGPDFDocumentGetPage(doc, 1);

    CGRect box = CGPDFPageGetBoxRect(page, kCGPDFCropBox); //kCGPDFArtBox);
    CGContextDrawPDFPage(context, page);

    CGPDFDocumentRelease(doc);
}

UIWebView, конечно, для SVG.

2 голосов
/ 03 марта 2010

Нет прямой поддержки форматов векторной графики, как есть для PNG и JPEG. Любой рендеринг векторной графики будет выполняться программно, т. Е. Обводка и заполнение объектов контуров с использованием вызовов рисования Quartz.

1 голос
/ 22 декабря 2012

Вы можете использовать что-то вроде http://www.codeautomat.com/ для преобразования файлов SVG в код Core Graphics Objective-C.

1 голос
/ 03 марта 2010

Да, он поддерживает SVG.

Вы можете конвертировать векторные файлы в SVG и отображать их путем преобразования в javascript с использованием библиотеки, подобной Raphael. Мои веб-сайты на основе Raphael имеют флеш-функциональность и отлично воспроизводятся на iPhone - преимущество веб-стандартов!

1 голос
/ 02 марта 2010

PDF-файлы могут быть загружены UIWebView. Если вам нужно больше контроля, вы можете использовать Quartz 2D для рендеринга PDF-файлов: Quartz2D

...