![]() |
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 |
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 |
Re: Farbbereiche & ScanLine
Hallo,
Zitat:
Gruß xaromz |
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 |
Re: Farbbereiche & ScanLine
und woher bekomme ich diese umrechnungen - ich werd mal googeln...
ich hab'S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!11111 geht mal ![]() |
Re: Farbbereiche & ScanLine
Zitat:
|
Re: Farbbereiche & ScanLine
Übrigens: Ich glaube nicht, dass es in Delphi einen Datentyp für
![]() Was du meinst sind wohl eher Hexadezimalzahlen... |
Re: Farbbereiche & ScanLine
... gib's da nicht auch was von ratiopharm? :mrgreen:
|
Re: Farbbereiche & ScanLine
Gute Basis ... gute Besserung!
(Zu Risiken und Nebenwirkungen lesen sie das verdammte Manual und fragen Sie ihren Fachinformatiker oder System-Administrator) |
Re: Farbbereiche & ScanLine
danke für eure sahlreichen antwtroten inklusive bester unterhaltung
:wink: :bouncing4: :bounce1: :dancer2: :roteyes: :nerd: :spin2: :hello: :hello: :hello: :hello: :hello: |
Re: Farbbereiche & ScanLine
Mal ein kürzerer Vorschlag:
Delphi-Quellcode:
Oder habe ich die Frage missverstanden?
procedure rotton(col:tcolor);
begin if (getrvalue(col)>getgvalue(col)) and (getrvalue(col)>getbvalue(col)) then showmessage('Rotton') else showmessage('kein Rotton'); end; //Edit: Oh man, es ist echt zu spät für mich... |
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: |
Re: Farbbereiche & ScanLine
Hallo,
@rawsoul: Dieser Text ist in einer Farbe (#A0961E), die laut Deinem Vergleich rot ist. Bist Du da sicher? Gruß xaromz |
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...) |
Re: Farbbereiche & ScanLine
Zitat:
Zitat:
|
Re: Farbbereiche & ScanLine
Zitat:
Zitat:
|
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