Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farbbereiche & ScanLine (https://www.delphipraxis.net/105470-farbbereiche-scanline.html)

xy124 22. Dez 2007 11:59


Farbbereiche & ScanLine
 
Hallo wissende...
ich hab mal 2 Fragen die erste:(die wichtigere) Wie kann ich mit delphi Farbbereiche abfragen?
also das ich z.b.
if (farbe > hellrot) and (farbe < dunkelrot) then showmessage('Die Farbe ist ein rotton!');

und die zweite Frage: wie funktioniert der bitmap.scanline-befehl?
ich kapier die delphihilfe dazu nicht aber ich kanns notfalls auch mit canvas.pixles regeln(das ist nur soooooooooo langsam...)

ich hoffe ihr könnt mir wenigstens zur ersten frage ne antwort geben! :P

Der_Unwissende 22. Dez 2007 13:15

Re: Farbbereiche & ScanLine
 
Hi,
wie soll denn eine Farbe kleiner sein als eine andere? Also an sich geht sogar dass, was Du da fragst, aber die Quizfrage ist ja eher, ist blau < rot und grün > lila?

Was die Farben angeht, so kannst Du natürlich immer den RGB-Wert betrachten, TColor müsste sich entweder direkt als Integer ansprechen lassen (Integer(clred)) oder Du kannst per ord den ordinalen Wert ermitteln. Da bekommst Du dann Zahlen und für die ist dann der Vergleich trivial.

Was die Arbeit mit Scanline angeht, so solltest Du einfach mal die Forensuche benutzen, da gibt es ganz sicher schon mehr als einen Eintrag, der das behandelt! Hast Du dann konkrete Fragen (was hast Du gemacht, was passiert / passiert nicht, was erwartest Du, welche Fehler kommen, ...) dann frag nochmal nach.

Gruß Der Unwissende

xaromz 22. Dez 2007 13:30

Re: Farbbereiche & ScanLine
 
Hallo,
Zitat:

Zitat von Der_Unwissende
wie soll denn eine Farbe kleiner sein als eine andere? Also an sich geht sogar dass, was Du da fragst, aber die Quizfrage ist ja eher, ist blau < rot und grün > lila?

solche Vergleiche lassen sich natürlich durchführen. Dazu ist aber eine Umrechnung der Farbe nötig. In diesem Fall böte sich die Frequenz der Farbe an, die sich dann einfach als Zahl vergleichen ließe.

Gruß
xaromz

xy124 22. Dez 2007 13:47

Re: Farbbereiche & ScanLine
 
danke erstmal :-D es gibt aber ein problem: der wert mit ord geht wie du schon vermutetest nach der helliugkeit - doof
ich habe aber rausgefunden das man den color-wert mit colortostring ja in nen string umwandelt dummerweiße steht dann z.b. für rot
clred und für andere farben z.b. $00F123FFF oder so - alle anderen farben gehen nach hexalzahlen... gibts in delphi irgent nen typ für hexalzahlen?

dann könnte manns ja so machen:

hexstring := colortostring(Farbe);
rotanteil := stringtohex(hexstring[2])*100 + stringtohex(hexstring[3])*10 + stringtohex(hexstring[4]);
.
.
.für die andern farben

xy124 22. Dez 2007 13:48

Re: Farbbereiche & ScanLine
 
und woher bekomme ich diese umrechnungen - ich werd mal googeln...

ich hab'S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!11111
geht mal hioerrauf:

inherited 22. Dez 2007 17:49

Re: Farbbereiche & ScanLine
 
Zitat:

Zitat von xy124
gibts in delphi irgent nen typ für hexalzahlen?

Nur um das mal klarzustellen: Das Zahlensystem hat nichts mit dem Datentyp zu tun. Das wird eh intern binär gespeichert.

Namenloser 22. Dez 2007 19:34

Re: Farbbereiche & ScanLine
 
Übrigens: Ich glaube nicht, dass es in Delphi einen Datentyp für HEXAL-zahlen gibt :mrgreen:
Was du meinst sind wohl eher Hexadezimalzahlen...

Muetze1 22. Dez 2007 19:36

Re: Farbbereiche & ScanLine
 
... gib's da nicht auch was von ratiopharm? :mrgreen:

inherited 22. Dez 2007 20:32

Re: Farbbereiche & ScanLine
 
Gute Basis ... gute Besserung!
(Zu Risiken und Nebenwirkungen lesen sie das verdammte Manual und fragen Sie ihren Fachinformatiker oder System-Administrator)

xy124 22. Dez 2007 21:38

Re: Farbbereiche & ScanLine
 
danke für eure sahlreichen antwtroten inklusive bester unterhaltung
:wink:

:bouncing4: :bounce1: :dancer2: :roteyes: :nerd: :spin2: :hello: :hello: :hello: :hello: :hello:

rawsoul 23. Dez 2007 01:15

Re: Farbbereiche & ScanLine
 
Mal ein kürzerer Vorschlag:
Delphi-Quellcode:
procedure rotton(col:tcolor);
begin
  if (getrvalue(col)>getgvalue(col)) and (getrvalue(col)>getbvalue(col)) then
    showmessage('Rotton') else showmessage('kein Rotton');
end;
Oder habe ich die Frage missverstanden?

//Edit: Oh man, es ist echt zu spät für mich...

xy124 23. Dez 2007 08:20

Re: Farbbereiche & ScanLine
 
danke rawsoul... dein text ist viel kürzer und den rechnet delphi bestimmt auch schneller aus, sodass ich schneller den Roten Punkt auf meinem Bild erkenne!!!!!!!1
:-D :hello:

xaromz 23. Dez 2007 08:38

Re: Farbbereiche & ScanLine
 
Hallo,

@rawsoul: Dieser Text ist in einer Farbe (#A0961E), die laut Deinem Vergleich rot ist. Bist Du da sicher?

Gruß
xaromz

xy124 23. Dez 2007 11:22

Re: Farbbereiche & ScanLine
 
Liste der Anhänge anzeigen (Anzahl: 2)
hat euch eigentlich schonmal jemand gesagt, das ihr genial seid?
:coder2: :xmas:
für rot geht das hier am besten:
if (getrvalue(col)>getgvalue(col)) and (getrvalue(col)>getbvalue(col)) and (getgvalue(col)<50) and (getbvalue(col)<50)then
aber meine Laserpointerfarbanalyse zeigte, das für die laserfarben(rot) das hier geeeignet ist(bei tag):
if (getrvalue(col)>getgvalue(col)) and (getrvalue(col)>getbvalue(col)) and (getrvalue(col)>245)then ...

rausgekommen ist bis jetzt dieser "LAsererkenner"- (funzt nur mit webcam)vielleicht wirds mal nen "starwarssimmulator" wenigstens kann ich schon meine maus per laser steuern...

mit button1 macht ihr aus dem bild nen bitmap
der andere Knopf sucht dann den laser und markiert ihn wenn er drin ist...
leider dauerts nen bissl also wenn euch was schnelleres als image1.canvas.pixels[x,y] einfällt sagt's mir bitte
die shapes warn mal für andere Test's ggedacht haben aber keinen Nutzen(bin zu faul sie zu löschen...)

inherited 23. Dez 2007 12:21

Re: Farbbereiche & ScanLine
 
Zitat:

Zitat von xy124
leider dauerts nen bissl also wenn euch was schnelleres als image1.canvas.pixels[x,y] einfällt sagt's mir bitte

Zitat:

Zitat von Der_Unwissende
Was die Arbeit mit Scanline angeht, so solltest Du einfach mal die Forensuche benutzen, da gibt es ganz sicher schon mehr als einen Eintrag, der das behandelt!

:wink:

rawsoul 23. Dez 2007 13:05

Re: Farbbereiche & ScanLine
 
Zitat:

Zitat von xaromz
@rawsoul: Dieser Text ist in einer Farbe (#A0961E), die laut Deinem Vergleich rot ist. Bist Du da sicher?

Getestet habe ich ihn nicht, jedoch klang es bezüglich der Farblehre für mich logisch. Ist der Rotanteil einer Farbe größer als die restlichen beiden, so ist sie in einem Rotton anzusiedeln. Man könnte durch Faktoren oder Farbbereiche sicherlich genauer arbeiten.

Zitat:

Zitat von xy124
danke rawsoul... dein text ist viel kürzer und den rechnet delphi bestimmt auch schneller aus, sodass ich schneller den Roten Punkt auf meinem Bild erkenne!!!!!!!1
:-D :hello:

Nur, weil der Quelltext kürzer ist, heißt es nicht, dass dieser schneller vom Prozessor verarbeitet wird!!!111einseinseins! :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 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