2010-03-01 12 views
5

È possibile eseguire il rendering di un file di immagine vettoriale su iPhone nello stesso modo in cui è possibile eseguire il rendering di un file bitmap (png, jpeg)? Ho provato i file eps e pdf, nessuno dei quali sembra funzionare: sono visualizzati correttamente in Interface Builder ma non vengono visualizzati durante l'esecuzione.L'iPhone può riprodurre direttamente file grafici vettoriali? Quali formati sono supportati?

La console emette un messaggio sulla falsariga di 'Impossibile caricare l'immagine 'image.pdf' si fa riferimento da un pennino in bundle con identificatore 'com.yourcompany.project''

Tutte le mie ricerche su questo vieni con la discussione di disegnare un file vettoriale usando OpenGL, ecc. È l'unico modo? Dal momento che non si fa menzione del supporto dei file vettoriali, non sono sicuro che i miei file non vengano caricati a causa di problemi con i file (ho provato diverse versioni) o perché non sono supportati.

risposta

1

I PDF possono essere caricati da UIWebView. Se avete bisogno di un maggiore controllo è possibile utilizzare Quartz 2D per rendere i file PDF: Quartz2D

2

Non c'è diretta supporto per i formati grafici vettoriali che ci sia per PNG e JPEG. Qualsiasi rendering di grafica vettoriale sarebbe fatto a livello di codice, cioè accarezzando e riempiendo gli oggetti del percorso usando le chiamate di disegno Quartz.

1

Sì, supporta SVG.

È possibile convertire i file vettoriali in SVG e renderli mediante conversione in javascript utilizzando una libreria come Raphael. I miei siti Web basati su Raphael hanno funzionalità simili a quelle di Flash e rendono perfettamente l'iPhone - il vantaggio degli standard Web!

4

È possibile eseguire il rendering di immagini PDF in modo nativo e crearle anche con Core Graphics. Qualcosa di simile a questo:

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, naturalmente, per SVG.

Problemi correlati