Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone能否直接渲染矢量图形文件?支持哪些格式?_Iphone_Vector Graphics_File Type - Fatal编程技术网

iPhone能否直接渲染矢量图形文件?支持哪些格式?

iPhone能否直接渲染矢量图形文件?支持哪些格式?,iphone,vector-graphics,file-type,Iphone,Vector Graphics,File Type,在iPhone上渲染矢量图像文件的方式是否与渲染位图(png、jpeg)文件的方式相同?我尝试过eps和pdf文件,它们似乎都不起作用——它们在Interface Builder中正确显示,但在运行时不显示 控制台输出一条消息,内容为“无法加载从捆绑包中标识为“com.yourcompany.project”的nib引用的“image.pdf”图像” 我在这方面的所有搜索都讨论了使用OpenGL绘制矢量文件等。这是唯一的方法吗?由于没有提到矢量文件支持,我不确定是否由于文件问题(我尝试了不同版本

在iPhone上渲染矢量图像文件的方式是否与渲染位图(png、jpeg)文件的方式相同?我尝试过eps和pdf文件,它们似乎都不起作用——它们在Interface Builder中正确显示,但在运行时不显示

控制台输出一条消息,内容为“无法加载从捆绑包中标识为“com.yourcompany.project”的nib引用的“image.pdf”图像”


我在这方面的所有搜索都讨论了使用OpenGL绘制矢量文件等。这是唯一的方法吗?由于没有提到矢量文件支持,我不确定是否由于文件问题(我尝试了不同版本)或不支持而没有加载我的文件。

UIWebView可以加载PDF。如果您需要更多控制,可以使用Quartz 2D渲染PDF:

与PNG和JPEG一样,不直接支持矢量图形格式。任何矢量图形渲染都将以编程方式完成,即使用Quartz绘图调用笔划和填充路径对象。

是的,它支持SVG


您可以将矢量文件转换为SVG,并使用Raphael之类的库将其转换为javascript进行渲染。我的基于拉斐尔的网站具有类似flash的功能,它们在iPhone上呈现得非常完美——这得益于web标准

可以以本机方式渲染PDF图像,也可以使用核心图形创建它们。大概是这样的:

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);
}

当然是SVG的UIWebView。

您可以使用类似的方法将SVG文件转换为核心图形Objective-C代码