2010-03-01 10 views
5

¿Es posible representar un archivo de imagen vectorial en el iPhone de la misma forma que se puede procesar un archivo de mapa de bits (png, jpeg)? He intentado archivos eps y pdf, ninguno de los cuales parece funcionar: se muestran correctamente en Interface Builder pero no se muestran cuando se ejecutan.¿Puede el iPhone representar archivos de gráficos vectoriales directamente? ¿Qué formatos son compatibles?

La consola emite un mensaje en la línea de 'No se pudo cargar la imagen 'image.pdf' hace referencia a partir de una semilla en el paquete con el identificador 'com.yourcompany.project''

Todos mis búsquedas en este llegar a un debate sobre cómo dibujar un vector de archivos usando OpenGL, etc. ¿Es esta la única manera? Como no se menciona el soporte de archivos vectoriales, no estoy seguro de si mis archivos no se están cargando debido a problemas con los archivos (he intentado versiones diferentes), o porque no son compatibles.

Respuesta

1

PDF puede cargarlo UIWebView. Si se necesita más control se puede utilizar para hacer Quartz 2D PDF: Quartz2D

2

No hay apoyo directo para los formatos de gráficos vectoriales como lo hay para PNG y JPEG. Cualquier representación de gráficos vectoriales se realizaría mediante programación, es decir, acariciando y llenando objetos de ruta utilizando llamadas de dibujo de Cuarzo.

1

Sí, es compatible con SVG.

Puede convertir sus archivos de vectores a SVG y renderizarlos mediante conversión a javascript utilizando una biblioteca como Raphael. Mis sitios web basados ​​en Raphael tienen una funcionalidad tipo flash y se reproducen perfectamente en el iPhone: ¡el beneficio de los estándares web!

4

Se pueden renderizar imágenes PDF de forma nativa y crearlas también con Core Graphics. Algo como esto:

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 por supuesto para SVG.

Cuestiones relacionadas