Sto utilizzando CorePlot per disegnare diversi grafici nella mia applicazione. Quindi, vorrei salvare questo grafico in un file jpg e pubblicarlo su un sito di social network (ad esempio, Twitter).Come salvare un grafico creato da CorePlot in un file jpg
ho fatto qualche lettura di documentazione e capito che i seguenti metodi potrebbero essere utili per me:
CGBitmapContextCreateImage: la creazione di un CGImage come una copia da un contesto grafico bitmap (vale a dire, la vista dove il mio grafico è situato o l'intero schermo - ho capito a destra)
CGImageCreateWithImageInRect: posso tagliare fuori una parte dell'immagine, se necessario
[UIImage imageWithCGImage? ]: La conversione CGImage ad un oggetto UIImage
UIImageJPEGRepresentation: convertire il mio oggetto UIImage a un oggetto NSData jpg che poi posso condividere alla mia rete sociale
La prima domanda è: Ho capito il diritto sequenza di operazioni che devo eseguire per portare a termine il mio compito? Avrei provato io stesso, ma ho avuto un problema che porta alla seconda domanda:
Da dove posso ottenere informazioni contesto grafico di passare in CGBitmapContextCreateImage se sto usando CorePlot? Scusa se è una domanda stupida, ma non sono davvero a casa con contesti grafici.
Grazie mille per qualsiasi aiuto in anticipo! E se prendo tutto questo da qualche parte, prometto di pubblicare il mio codice qui.
Bene, grazie a Brad, è stato davvero facile, ma come ho promissed, devo inviare le righe:
CPXYGraph *graph=[[CPXYGraph alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
// setting up the graph
// ...
UIImage *newImage=[graph imageOfLayer];
NSData *newPNG=UIImagePNGRepresentation(newImage); // or you can use JPG or PDF
// For test purposes I write the file to the Documents directory, but you can do whatever you want with your new .png file
NSString *filePath=[NSString stringWithFormat:@"%@/graph.png", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]];
if([newPNG writeToFile:filePath atomically:YES])
NSLog(@"Created new file successfully");
Come nota a margine, hai considerato png anziché jpg? Potrebbe essere meglio per la grafica generata al computer come i grafici. – ustun