2009-06-11 5 views
2

J'ai un UIImage qui affiche un bouton en niveaux de gris. Y a-t-il un moyen d'ombrer l'image avec une couleur lorsque je la dessine? Donc, je pourrais effectivement avoir 1 image en niveaux de gris, mais avez un bouton de couleur? J'aimerais aussi que les pixels transparents restent transparents si possible.Comment ombrer une image png pour iphone

Merci!

+0

Cette question a-t-elle un sens pour ceux qui la regardent? –

+0

Oui. Quelle est l'image? – coneybeare

+0

Bien sûr. Comme lorsque Ted Turner a colorisé tous ces films MGM, RKO et Warner Bros classiques en noir et blanc. – Nosredna

Répondre

1

Pour ce faire, vous aurez besoin d'utiliser Quartz 2D avec les étapes suivantes:

  1. Créer une CGImage pour l'arrière-plan PNG avec CGImageCreateWithPNGDataProvider, ou utilisez UIImage comme d'habitude et de saisir une référence à l'image Quartz données utilisant la propriété CGImage du UIImage.
  2. Définissez le mode de fusion sur l'image avec CGContextSetBlendMode. Le mode que vous recherchez est probablement kCGBlendModeOverlay.
  3. Créez un nouveau monotone CGImage pour la couche d'ombrage.
  4. Utilisez CGContextDrawImage pour composer la couche d'ombrage sur la couche de fond.

Des instructions détaillées sur la façon de procéder sont disponibles dans le Guide de programmation Quartz 2D, dans la section intitulée "Using Blend Modes with Images".

+0

Merci beaucoup! J'ai passé des heures à chercher cette solution. Je vais essayer dès que je quitte le travail. Merci encore! –

Questions connexes