Speichern UIView, um eine transparente PNG
Ich habe eine UIView und ich wollen, dass es gespeichert werden als transparente PNG -, d.h. ohne die UIVIew Hintergrundfarbe...
Ich bin derzeit mit diesem code und es funktioniert OK, aber mit dem background-color 🙁
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(image1);
[imageData writeToFile:filePath atomically:YES];
Also hat jemand eine Idee, darum, dieses Bild als transparente?
Vielen Dank im Voraus..
- Versuchen Sie, die Ansicht backgroundColor auf [UIColor clearColor];
- danke für Ihre Antwort, der Punkt ist, dass ich will, dass die Nutzer zu sehen, der hintergrund und ich möchte, um das Bild zu erzeugen, und speichern Sie es in den Unterlagen, während die app ausgeführt wird 🙁
- Haben Sie jemals bekommen, das dies funktioniert? Ich brauche etwas ähnliches.
- Sie können fügen Sie einfach Ihre transparente Ansicht als unteransicht der Ansicht, dass das hintergrund-Farbe, aber nur die transparente Ansicht gerendert wird zu PNG.
- wenn Sie, wie ich, kam hier an finden Sie heraus, wie Sie konvertieren Sie einen UIView png, beachten Sie, dass der #import <QuartzCore/QuartzCore.h>.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In meinem Fall, ich habe die opake Eigenschaft. Es sollte auf NEIN eingestellt werden:
Ändern Sie die Hintergrundfarbe [UIColor clear], zeichnen Sie das Bild und legen Sie dann die hintergrund Farbe wieder in die ursprüngliche Farbe.
Da die GUI aktualisiert wird Feuer nur auf den nächsten runloop Zyklus, der Benutzer sollte sehen kein flackern.
Als Ergänzung zu Gilad Antwort. Auf retina-display, dies kann dazu führen, dass einige Qualitätsprobleme. Um die retina-Kontext können Sie diesen code verwenden, aus diese post.
Für Objective-c müssen Sie noch festlegen, Opak = NICHT
Rasch setzten Sie opaque = false