2009-07-09 7 views
1

J'ai fait une application de peinture simple pour l'iphone. J'essaye de convertir l'image dessinée en PNG transparent (je ne veux pas d'arrière-plan blanc). J'aimerais aussi obtenir une représentation UIImage à utiliser dans un UIImageView.Conversion d'un CGLayer en un fichier * transparent * UIImage et PNG dans CoreGraphics iphone

Actuellement, je réponds aux événements tactiles et dessine des chemins vers une CGLayer qui est ensuite dessinée dans mon contexte de vues. J'ai accès à la CGLayer ainsi qu'à la vue elle-même. Actuellement, je génère ma vue à une image en utilisant:

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

Ceci utilise uniquement la vue pour créer un UIImage.

Étant donné que la vue a un arrière-plan blanc, elle est incluse dans l'UIImage que je crée. Je voudrais obtenir un UIImage qui n'a pas ce fond blanc afin que je puisse afficher et écrire dans un fichier PNG.

Je pense que je devrais utiliser le CGLayer que j'ai directement mais je ne suis pas sûr de savoir comment l'obtenir du type CGLayerRef auquel j'ai accès.

Toutes les idées seraient grandement appréciées.

  • Aleem

Répondre

5

Je viens de traiter ce sujet. Ne tirez pas sur le fond CGLayer puis définissez l'arrière-plan de la UIView à:

self.backgroundColor = [UIColor clearColor]; 

Cela devrait le faire et votre .png aura un fond transparent.

+0

A travaillé parfaitement merci! – aloo

+0

Je suis également bloqué à ce point. Pourriez-vous s'il vous plaît expliquer votre réponse plus en détail.Ou fournir un exemple de code source s'il vous plaît –

+0

Je ne suis pas sûr de quelle information vous avez besoin. Pourriez-vous expliquer plus loin où vous rencontrez des difficultés? – adamkrell

Questions connexes