Estoy usando CorePlot para dibujar diferentes gráficos en mi aplicación. Luego, me gustaría guardar este gráfico en un archivo jpg y publicarlo en algún sitio de redes sociales (por ejemplo, Twitter).Cómo guardar un gráfico creado por CorePlot en un archivo jpg
he hecho un poco de lectura documentación y entiende que los métodos siguientes podrían ser útiles para mí:
CGBitmapContextCreateImage: la creación de un CGImage como una copia de un contexto gráfico de mapa de bits (es decir, la vista en mi gráfico es situado o toda la pantalla - ¿he entendido derecha)
CGImageCreateWithImageInRect: puedo recortar una parte de la imagen si es necesario
[UIImage imageWithCGImage? ]: Convertir CGImage a un objeto UIImage
UIImageJPEGRepresentation: convertir mi objetivo UIImage a un NSData objeto jpg que luego puedo compartir a mi red social
La primera pregunta es: ¿He entendido bien la secuencia de operaciones que tengo que llevar a cabo para lograr mi tarea? Me he probado a mí mismo, pero tengo un problema que lleva a la segunda pregunta: ¿
De dónde consigo la información de contexto gráfico pase a CGBitmapContextCreateImage si estoy usando CorePlot? Lo siento si es una pregunta tonta, pero no estoy realmente en casa con los contextos gráficos.
Muchas gracias por cualquier ayuda de antemano! Y si consigo todo esto en algún lado, prometo publicar mi muestra de código aquí.
Bien, gracias a Brad, que era muy fácil, pero como he prometido es deuda, tengo que publicar las líneas:
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");
Como nota al margen, ¿ha considerado png en lugar de jpg? Podría ser mejor para gráficos generados por computadora como gráficos. – ustun