Ich verwende CorePlot, um verschiedene Graphen in meiner Anwendung zu zeichnen. Dann möchte ich dieses Diagramm in eine JPG-Datei speichern und auf einer sozialen Netzwerkseite (z. B. Twitter) veröffentlichen.So speichern Sie eine von CorePlot erstellte Grafik in eine JPG-Datei
Ich habe einige Unterlagen lesen und zu verstehen, dass die folgenden Methoden für mich nützlich sein könnten:
CGBitmapContextCreateImage: eine CGImage als Kopie von einem Bitmap-Grafikkontext zu schaffen (dh die Ansicht, in der mein Graph gelegen oder den ganzen Bildschirm - habe ich verstanden rechts)
CGImageCreateWithImageInRect: ich des Bildes einen Teil ausschneiden kann, wenn
benötigt
[UIImage imageWithCGImage? ]: CGImage auf ein UIImage Objekt
UIImageJPEGRepresentation Umwandlung: mein UIImage Objekt in ein jpg NSData Objekt umzuwandeln, die dann kann ich
Die erste Frage zu meinem sozialen Netzwerk teilen ist: haben verstanden, ich Recht, die Reihenfolge der Operationen, die ich ausführen muss, um meine Aufgabe zu erfüllen? Ich hätte es aus mir selbst versucht, aber ich habe ein Problem, das auf die zweite Frage führt:
Von wo bekomme ich die Info-Grafikkontext in CGBitmapContextCreateImage passieren, wenn ich CorePlot verwende? Entschuldigung, wenn es eine dumme Frage ist, aber ich bin nicht wirklich mit Grafikkontexten zu Hause.
Vielen Dank für jede Hilfe im Voraus! Und wenn ich mit all dem irgendwo komme, verspreche ich, hier mein Codebeispiel zu posten. Nun
dank Brad, es war wirklich einfach, aber wie ich versprochen, ich habe die Zeilen schreiben:
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");
Als eine Randnotiz, haben Sie png anstelle von jpg in Betracht gezogen? Es könnte für computergenerierte Grafiken wie Diagramme besser sein. – ustun