Question

Existe-t-il un moyen simple de coloriser par programmation des images dans .NET? Nous avons essentiellement une image en noir et blanc et nous devons placer un calque rose dessus et réduire l’opacité de ce calque pour rendre l’image colorisée en rose.

Était-ce utile?

La solution

Vous devriez utiliser la magnifique bibliothèque ImageMagick . Il a des liaisons .NET, donc pas de problème.

Amusez-vous! :)

Autres conseils

Pour résumer, utilisez les packages de dessin pour dessiner un rectangle sur l’image dans une couleur donnée (vous pouvez définir un alpha). Ce n'est pas très efficace, mais avec la mise en cache, cela ne ferait aucun mal, même sur un serveur occupé.

C’est un peu trop personnalisé pour une méthode de structure .net. Si vous ne trouvez pas une solution d’appel à une seule méthode .. je publie quelque chose qui pourrait être quelque chose à regarder.

Si vous avez un fichier WPF, vous pouvez charger l’image dans un contrôle. Placez un autre contrôle (rectangle avec remplissage rose et transparence) par dessus. (Utilisez quelque chose comme une grille pour la mise en page afin que les deux se chevauchent parfaitement) Ensuite, vous pourriez

RenderTargetBitmap bmp = new RenderTargetBitmap( imageWidth,imageHeight, 
  DPIHoriz, DPIVert, 
  PixelFormats.Pbrga32);
 // if you don't want to make the controls 'visible' on screen, you need to trigger size calculations explicitly. 
grid.Measure(new Size(imageWidth, imageHeight));
grid.Arrange(new Rect(0,0, imageWidth, imageHeight);
bmp.Render(grid);

Vous obtenez donc tout ce que vous voyez à l'écran, écrit dans le bitmap en mémoire. Vous pourriez alors le sauver. Si cela ne fonctionne pas, vous pouvez opter pour un contrôle au niveau des pixels avec la classe WriteableBitmap et effectuer un travail d'octet.

Je pense que ce sera un peu plus compliqué si vous souhaitez coloriser une image plutôt que de simplement mettre un calque transparent en surplomb. Si vous voulez avoir le même effet que l'écran " écran " calque dans Photoshop, vous devez remplacer toutes les nuances de noir dans l’image par des nuances de la nouvelle couleur pour que les parties blanches restent blanches.

Cela peut très certainement être fait dans .NET, mais je suppose que cela ne ferait pas de mal de consulter une bibliothèque quelconque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top