Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Negativ bei TImage (https://www.delphipraxis.net/67595-negativ-bei-timage.html)

Martin K 17. Apr 2006 12:31


Negativ bei TImage
 
Hi,

gibt es eine einfache Möglichkeit, ein TImage negativ zu machen, also die Fraben umzukehren ?
Oder muss ich da irgendeinen komplizierten Code machen, der jedes Pixel einzeln abfragt und seinen Farbwert umkehrt?

In Paint geht das schließlich auch ganz einfach:
Bild -> Farben umkehren

Hawkeye219 17. Apr 2006 12:38

Re: Negativ bei TImage
 
Über Delphi-Referenz durchsuchenTCanvas.CopyMode dürftest Du die Lösung finden.

Gruß Hawkeye

Martin K 17. Apr 2006 12:42

Re: Negativ bei TImage
 
Danke, werd ich mal ausprobieren...

Airblader 17. Apr 2006 12:49

Re: Negativ bei TImage
 
Zitat:

Zitat von Martin K
In Paint geht das schließlich auch ganz einfach:
Bild -> Farben umkehren

Hihi,
aber beachte doch, dass du das nicht vergleichen darfst ;)
Was in Paint hinter diesem einem Klick steht weißt du doch nicht :)
Du kannst dir auch komplizierte Funktionen dafür schreiben, sie aber mit einem Klick ausführen :)

Aber wie gesagt geht es auch leichter ;)

air

Martin K 17. Apr 2006 13:48

Re: Negativ bei TImage
 
Zitat:

Zitat von Airblader
Hihi,
aber beachte doch, dass du das nicht vergleichen darfst ;)
Was in Paint hinter diesem einem Klick steht weißt du doch nicht :)
Du kannst dir auch komplizierte Funktionen dafür schreiben, sie aber mit einem Klick ausführen :)

Ja, das ist mir schon klar!
Aber so eine Funktion gibt es ja eigentlich in jedem Bildbearbeitungsprogramm.

Gibt es eigentlich auch eine Möglichkeit, nur einzelne Farben umzukehren?
Also z.B. will ich nur das, was rot in meinem Image ist (überall wo die Color=clRed ist) durch die Komlimentärfarbe von rot ersetzen.
Alles andere soll aber die alte Farbe behalten.
Ist das irgendwie möglich?

Nikolas 17. Apr 2006 13:56

Re: Negativ bei TImage
 
Das ist sicher möglich. Du könntest einfach jedes Pixel einzeln auslesen und dann neu setzen. Wobei du mit der Abfrage if pixel[x,y]=clred nicht viel Spaß haben wirst, da in einem normalen Bild sicher nur wenige Pixel exakt diese Farbe haben, das heisst, du müsstest dir einen Bereich an Farben überlegen, den du noch als 'Rot' anerkennst.

Flare 17. Apr 2006 13:57

Re: Negativ bei TImage
 
Gehen würde das, bloß die Frage ist, was definierst du als "rot"?
Etwa den RGB-Wert #FF0000?
Oder auch #DE2403?
Beides ist irgendwo "rot" :stupid:


Flare

Martin K 17. Apr 2006 14:00

Re: Negativ bei TImage
 
Ne, der Farbwert muss schon einheitlich und genau sein (kein Farbbereich).
Ich verwende Symbole, die 32x32 groß sind, also sollte die Suche nach jedem einzelnen Pixel +ersetzen auch nicht sehr lange dauern (was bei größeren Bildern vielleicht eher ein Problem sein könnte).

Martin K 17. Apr 2006 14:06

Re: Negativ bei TImage
 
Wie kann man das denn mit der Komplimentärfarbe anstellen?

Es müsste ja etwa so aussehen (bei rot): #FF0000 -> #00FFFF
Ich müsste also jedem Bereich meiner Farbe (rot grün blau) den Wert: 255-alten Wert zuweisen.

Wie kann ich denn einen Farbwert (Integer) in die Farbwerte der drei Grundfarben "zerlegen" und nachher wieder "zusammensetzen"?

heiopei 17. Apr 2006 14:12

Re: Negativ bei TImage
 
also soweit ich mich erinnere, gibts da was im delphikochbuch 6 (muss nochmal suchen).
da wird scanline verwendet (also pointer). dabei kann man auch auf jedes byte (und damit die farbwerte) zugreifen. beim negieren der farben würd ich mal auf sowas wie "nor" tippen, ich schau jetzt aber gleich nochmal nach...

bis dann,
heiopei


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz