![]() |
wie funktioniert das mit der RGB funtion???
Hallo
ich hab mal ne frage zur RGB funktion?? wie kriege ich die zahlen für die einzelnen Farben heraus?? also bei der Delphi hilfe ist das nicht ersichtlich Gruss Robert |
Re: wie funktioniert das mit der RGB funtion???
Hi,
von einem TColor Wert kannst du mit GetRValue, GetGValue und GetBValue die einzelnen RGB farbwerte zusammensuchen. mfG mirage228 |
Re: wie funktioniert das mit der RGB funtion???
ich würde ausprobieren raten. Bei paint hast du unter 'Palette bearbeiten' alle möglichen Farben bei denen zusätzlich noch ihre RGB-Werte angezeigt werden.
Oder du benutzt die ganzen vorgefertigten Farben wie clblue, clred usw. Toxman |
Re: wie funktioniert das mit der RGB funtion???
So schwer ist das nicht.
Zitat:
Code:
Blau = $00[color=red]xx[/color]____
Grün = $00__[color=red]xx[/color]__ Rot = $00____[color=red]xx[/color]
Code:
Hier mal ein paar Farbwerte:
dunkel = 00
... hell = FF
Delphi-Quellcode:
clBlack = TColor($000000);
clMaroon = TColor($000080); clGreen = TColor($008000); clOlive = TColor($008080); clNavy = TColor($800000); clPurple = TColor($800080); clTeal = TColor($808000); clGray = TColor($808080); clSilver = TColor($C0C0C0); clRed = TColor($0000FF); clLime = TColor($00FF00); clYellow = TColor($00FFFF); clBlue = TColor($FF0000); clFuchsia = TColor($FF00FF); clAqua = TColor($FFFF00); clLtGray = TColor($C0C0C0); clDkGray = TColor($808080); clWhite = TColor($FFFFFF); clMoneyGreen = TColor($C0DCC0); clSkyBlue = TColor($F0CAA6); clCream = TColor($F0FBFF); clMedGray = TColor($A4A0A0); |
Re: wie funktioniert das mit der RGB funtion???
Delphi-Quellcode:
Auszug aus meiner Bildbearbeitung, so hab ich das gelöst. Geht wunderbar.
type
RGBWerte = record rot, gruen, blau: int64; end; function RGBSplitten(RGB: int64): RGBWerte; begin result.blau := trunc(RGB / sqr(256)); RGB := RGB - result.blau * sqr(256); result.gruen := trunc(RGB / 256); RGB := RGB - result.gruen; result.rot := trunc(RGB / 256); end; MfG |
Re: wie funktioniert das mit der RGB funtion???
Etwas optimaler könnte der Code schon sein ;)
Delphi-Quellcode:
Var Color: TColor;
R, G, B: Byte; {um sicher zu gehn, das auch wirklich ein RGB-Farbwert drin ist} Color := ColorToRGB(Color); {TColor aufteilen} {oder so} R := GetRValue(Color); R := Color and $FF; G := GetGValue(Color); G := (Color shr 8) and $FF; B := GetBValue(Color); B := (Color shr 16) and $FF; {und zurück} {oder so} Color := RGB(R, G, B); Color := R or (G shl 8) or (B shl 16); :gruebel: Int64 auf 'nem 32-Bit-System Und dann noch solch langsame Funktionen/Befehle ("trunc", "sqr" und "/") ach ja ... siehe Code-Lib ;) ![]() |
Re: wie funktioniert das mit der RGB funtion???
Zitat:
-man kann nicht wirklich testen ob die Zahl wirklich ein RGB-Wert sein soll, ist auch gar nicht interessant -der Code von mir ist lesbarer, bzw man sieht das mathematische dahinter, aber klar sind deine Bit-Operatoren bissel schneller -int64 wird von Borland empfohlen, außerdem könnte es ja ein 64Bit-System sein dank Athlon64 und WinXP 64Bit-Edition (theoretisch) -statt trunc kannst auch int nehmen, is vielleicht bissel schneller weil ja nur abgeschnitten wird -schneller teilen geht nicht, nur mit den Bit-Operatoren mit denen ich grade eben erst angefangen habe Fazit: Wenn man wissen will was wirklich passiert, finde ich meinen Code schöner. Ist aber Geschmackssache... Und für mein Prog reicht es allemal. Außerdem brauche ich den vordefinierten Typ dort, sonst wäre es viel zu unübersichtlich. MfG |
Re: wie funktioniert das mit der RGB funtion???
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
---> nicht bös gemeint, wollte es nur richtig stellen. herzlichen, dizzy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 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