Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hilfe zu Farbänderung und Bildüberlagerung (https://www.delphipraxis.net/88493-hilfe-zu-farbaenderung-und-bildueberlagerung.html)

torte62 16. Mär 2007 09:51


Hilfe zu Farbänderung und Bildüberlagerung
 
Bisher habe ich Bitmaps mit nachstehendem Code eingefärbt. (entspricht Photoshop Blendenmodi "Multiplizieren")
Delphi-Quellcode:
   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;
Zur Erzielung besserer Ergebnisse ist die Kombination mit "Farbe(Color)" erforderlich.


〚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]

Pfoto 16. Mär 2007 10:16

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 hier mal im Quelltext schauen.



Gruß
Pfoto

torte62 16. Mär 2007 10:36

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

SirThornberry 16. Mär 2007 10:36

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?

torte62 16. Mär 2007 10:50

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

torte62 16. Mär 2007 11:40

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

torte62 16. Mär 2007 11:43

Re: Hilfe zu Farbänderung und Bildüberlagerung
 
Meine Site: http://www.looktrue.com
torte62


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