Frage

Gibt es eine einfache Möglichkeit, Bilder in .NET programmgesteuert einzufärben?Grundsätzlich haben wir ein Schwarz-Weiß-Bild und müssen eine Schicht, beispielsweise Rosa, darüber legen und die Deckkraft dieser Ebene verringern, damit das Bild rosa eingefärbt wird.

War es hilfreich?

Lösung

Sie sollten die wunderbaren ImageMagick Bibliothek. Es hat .NET Bindungen so kein Problem.

Viel Spaß! :)

Andere Tipps

Die Art und Weise, die in den Sinn kommt ist die Zeichnung Pakete mit einem Rechteck über das Bild in einer bestimmten Farbe zu zeichnen (Sie können alpha gesetzt). Es ist nicht sehr effizient, aber mit Caching, es würde nicht schaden, auch auf einem ausgelasteten Server.

Dies ist für eine .net-Framework-Methode etwas zu benutzerdefiniert.Wenn Sie keine einzelne Methodenaufruflösung finden können ...Ich poste etwas, das man sich ansehen könnte.

Wenn Sie über WPF verfügen, können Sie das Bild in ein Steuerelement laden.Platzieren Sie darüber ein weiteres Steuerelement (Rechteck mit rosa Füllung und Transparenz).(Verwenden Sie so etwas wie ein Raster für das Layout, damit sich beide perfekt überlappen) Als nächstes könnten Sie

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);

Sie erhalten also alles, was Sie auf dem Bildschirm sehen, in die Bitmap im Speicher geschrieben.Dann könnte man es sich sparen.Wenn das nicht funktioniert, können Sie die Kontrolle auf Pixelebene mit der Klasse WriteableBitmap durchführen und Byte-Arbeit durchführen.

Ich denke, es wird ein wenig komplizierter sein, wenn Sie eher ein Bild kolorieren wollen als nur eine smi-transparente Schicht auf der Oberseite setzen. Wenn Sie den gleichen Effekt wie der „Bildschirm“ Ebenenmodus in PhotoShop haben wollen, dann müssen Sie mit den Farben der neuen Farbe, die weißen Teile weiß zu halten alle Farbtöne im Bild schwarz ersetzen.

Es kann die meisten auf jeden Fall in .NET getan werden, aber ich nehme an es nicht suchen in eine Bibliothek von einer Art verletzen würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top