2009-07-09 2 views
1

Ich habe eine einfache Malerei App für das iPhone gemacht. Ich versuche, das gezeichnete Bild in ein transparentes PNG zu konvertieren (ich möchte keinen weißen Hintergrund). Ich möchte auch eine UIImage-Repräsentation zur Verwendung in einem UIImageView erhalten.Converting ein CGLayer zu einem * transparent * UIImage und PNG-Datei in CoreGraphics iphone

Momentan reagiere ich auf Berührungsereignisse und zeichne Pfade zu einem CGLayer, der dann in meinen Sichtenkontext gezeichnet wird. Ich habe sowohl Zugriff auf den CGLayer als auch auf die Ansicht selbst. Momentan gebe ich meine Ansicht zu einem Bild aus unter Verwendung von:

UIGraphicsBeginImageContext(drawingView.bounds.size); 
[drawingView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Dies verwendet nur die Ansicht zum Erstellen eines UIImage.

Da die Ansicht einen weißen Hintergrund hat, ist sie in der UIImage enthalten, die ich erstelle. Ich möchte eine UIImage erhalten, die diesen weißen Hintergrund nicht hat, also kann ich eine PNG-Datei anzeigen und schreiben.

Ich denke, ich sollte den CGLayer verwenden, den ich direkt habe, aber ich bin nicht sicher, wie man das vom CGLayerRef Typ erhält, auf den ich Zugang habe.

Alle Ideen würden sehr geschätzt werden.

  • Aleem

Antwort

5

ich damit nur behandelt. Verwenden Sie keinen Hintergrund auf dem CGLayer ziehen und dann den Hintergrund des UIView zu:

self.backgroundColor = [UIColor clearColor]; 

das tun sollte und Ihre png einen transparenten Hintergrund haben.

+0

Arbeitete perfekt danke! – aloo

+0

Ich bin auch an diesem Punkt stecken.können Sie bitte Ihre Antwort näher erklären. Oder geben Sie einen Beispiel-Quellcode bitte –

+0

Ich bin mir nicht sicher, welche Informationen Sie benötigen. Könntest du weiter erklären, wo du Schwierigkeiten hast? – adamkrell

Verwandte Themen