![]() |
Hilfe zu Farbänderung und Bildüberlagerung
Bisher habe ich Bitmaps mit nachstehendem Code eingefärbt. (entspricht Photoshop Blendenmodi "Multiplizieren")
Delphi-Quellcode:
Zur Erzielung besserer Ergebnisse ist die Kombination mit "Farbe(Color)" erforderlich.
Line := Scanline[y];
for x := 0 to Width - 1 do if Line[x].a = 254 then begin Line[x].B := Line[x].B * b div 255; Line[x].G := Line[x].G * g div 255; Line[x].R := Line[x].R * r div 255; end; end; 〚Hue(E)Saturation(E)Brightness(E)〛=〚Hue(V)Saturati on(H)Brightness(H)〛 E = Ergebnispixel(mein Bild fertig) V = Vordergrund (der rgb Wert zum Einfärben) H = Hintergrund (mein Bild als Vorlage) von meinem Bild bleiben Sätigung und Helligkeit erhalten und vom rgb Wert zum Einfärben wird der Farbton benutzt anstelle des Farbtons in meinem Bild. Wäre für Hilfe wie sich dieses Vorhaben in Delphi Code übertragen läßt sehr dankbar. torte62 [edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit] |
Re: Hilfe zu Farbänderung und Bildüberlagerung
Hallo torte62,
leider kann ich dir zwar keine direkte Code-Lösung geben, weiß aber, dass in der Gr32-Lib fast alle Photoshop-Modi als Funktion integriert sind: Zur Not könntest du also ![]() Gruß Pfoto |
Re: Hilfe zu Farbänderung und Bildüberlagerung
Hallo Pfoto,
danke für den Tip, sehe mir die aktuelle Version von GR32 mal dazu an, auf den ersten Blick schein der Blendenmodi "Farbe" nicht dabeizu sein. Vielleicht kann ich aber aus den vorhandenen Codes etwas passendes basteln??? Gruß Torte62 |
Re: Hilfe zu Farbänderung und Bildüberlagerung
was hast du jetzt genau vor? Aus deinem Beitrag kann ich irgendwie keine Frage heraus lesen. Willst du das Bild mit einer Farbe blenden (alphablend)?
Was mich auch verwundert: Warum führst du die Aktion nur durch wenn das Alphakanal-Byte 254 ist? Beschreibst du diesen Kanal vorher selbst? |
Re: Hilfe zu Farbänderung und Bildüberlagerung
genau wie du sagst habe ich einen Teil meines Bildes mit einem Alphawert beschrieben. Diesen Teil will ich zur Farbsimulation neu einfärben. Die Kombination der bereits beschriebenen Methode mit der weiteren Methode "Farbe" also den Farbton des Bildes H durch den Farbton einer festgelegten Farbe zu ersetzen. Wobei Sättigung S und Helligkeit V des Bildbereiches unverändert bleiben.
Gruß torte62 |
Re: Hilfe zu Farbänderung und Bildüberlagerung
warscheinlich müßte man RGB in HSL etc. umrechnen und dann jeweils H des Bildes durch den vorher ermittelten Wert H der Farbe zum Einfärben ersetzen und das ganze zurück nach RGB convertieren, und das ganze noch so schnell wie möglich, da die Bilder schon mal 30 und mehr MB groß sein können.
torte62 |
Re: Hilfe zu Farbänderung und Bildüberlagerung
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz