Je veux prendre un U-objectif U-mage et le rendre tout noir, mais toujours avoir les mêmes valeurs alpha afin qu'il devienne une silhouette de son ancienne image. Je me demandais s'il y avait un moyen plus pratique de faire cela que de simplement prendre les données CGImage et changer les valeurs pour chaque pixel?UIImage, existe-t-il un moyen facile de le rendre plus sombre ou tout noir
0
A
Répondre
3
Vous pouvez extraire les informations alpha en créant un CGBitmapContext avec kCGImageAlphaOnly, et 1 composant et dessiner dans celui-ci. Ensuite, vous auriez une image avec alpha seulement.
Ensuite, vous pouvez le combiner sur une image entièrement noire avec kCGBlendModeDestinationIn. Cela devrait vous laisser avec une image qui est tout noir avec les valeurs alpha d'origine.
2
Voici une fonction que je l'ai utilisé pour faire une version colorisée d'une image:
@interface NSImage(ColorizedImageAdditions)
- (NSImage*) colorizedImage: (NSColor*) color;
@end
- (NSImage*) colorizedImage: (NSColor*) color
{
NSSize imageSize = [ self size ];
NSImage* result = [ [ [ NSImage alloc ] initWithSize: imageSize ] autorelease ];
[ result lockFocus ];
[ NSGraphicsContext saveGraphicsState ];
NSRect imageBounds = NSMakeRect(0, 0, imageSize.width, imageSize.height);
[ color setFill ];
[ NSBezierPath fillRect: imageBounds ];
[ self drawInRect: imageBounds fromRect: NSZeroRect
operation: NSCompositeDestinationIn fraction: 1.0 ];
[ NSGraphicsContext restoreGraphicsState ];
[ result unlockFocus ];
return result;
}
Il utilise l'opération NSCompositeDestinationIn pour remplir les zones opaques de l'image avec la couleur désirée.
Questions connexes
- 1. Le moyen le plus facile d'apprendre l'unité
- 2. Existe-t-il un moyen d'analyser les pixels d'un UIImage?
- 3. Tout moyen de rendre GetTypes() moins fragile
- 4. Le moyen le plus optimal pour détecter si noir (ou des pixels de couleur) existe dans un fichier image?
- 5. Une manière plus facile ou mieux de le faire?
- 6. Comment rendre la sortie de log4perl plus facile à lire?
- 7. Quel est le moyen le plus facile de fusionner deux ou plusieurs fichiers pdf dans Delphi?
- 8. moyen le plus facile de centrer une image dans Silverlight?
- 9. Existe-t-il un moyen meilleur et/ou plus facile de se déconnecter?
- 10. Carte avec de l'eau plus sombre
- 11. Phonegap - Comment rendre le statusbar noir?
- 12. le moyen le plus facile de porter un jeu basé sur SDL-1.2 à l'iPhone
- 13. Comment rendre cette requête plus facile à écrire
- 14. Un moyen facile d'écraser le css de base jQuery-UI?
- 15. Wicket et un riche site ajax: moyen le plus facile de le faire?
- 16. Manière plus facile d'ajouter beaucoup d'images à un tableau
- 17. Qu'est-ce qui pourrait rendre cette dsl plus facile à taper ou à lire?
- 18. Comment rendre une image plus facile à cliquer?
- 19. Erlang - Interleave le moyen facile
- 20. Javascript: Allumez où est la souris; le repos est sombre
- 21. possible pour une application iPhone de rendre l'iPhone "sombre" pour un nombre spécifié de minutes?
- 22. moyen le plus facile de mettre en pause un programme python en ligne de commande?
- 23. Un moyen facile de tester l'application réseau
- 24. Le moyen le plus facile de supprimer tous les espaces d'un fichier de code?
- 25. Rendre le fichier XML plus lisible
- 26. moyen plus facile d'évaluer une chaîne à partir du fichier?
- 27. Le masquage UIImage donne un fond noir sur l'iPhone (et non sur le simulateur)
- 28. le moyen le plus facile de télécharger des données mises à jour sur le serveur
- 29. Faire défiler un ListView change tout de Blanc en Noir
- 30. carte comme MapTypeId.TERRAIN avec de l'eau sombre