AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RAL Farbe zu RBG zu TColor

Ein Thema von Alex_ITA01 · begonnen am 2. Dez 2015 · letzter Beitrag vom 3. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 15:21
Hallo,
ich habe bereits Funktionen gefunden, die mir eine RBG Farbe in TColor (Integer) umrechnen.
Es gibt auch diverse Seiten im Netz, wo in einer Tabelle erklärt ist, welche RAL Farbe welchen RBG Werten entspricht.
Meine Frage ist eigentlich nur, gibt es auch in Delphi eine Standardfunktion RAL zu RBG oder müsste ich die neu schreiben?

Viele Grüße
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#2

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 15:46
Meinst du wirklich RBG oder darf's auch RGB/BGR sein?
TColor ist bereits RGB (hexadezimal: $00bbggrr), kann aber zusätzlich "Systemfarben" von Windows enthalten, z.B. clBtnFace usw. (hexadezimal: $FF0000xx, xx=ID).
Deshalb gibt's die funktion Vcl.Graphics.ColorToRGB, die ein Systemfarben-TColor in ein RGB-TColor konvertiert (und ein RGB-TColor unverändert lässt).

Ich bezweifle, dass es in den Delphi-Standardbibliotheken eine Funktion für RAL gibt.
Außerdem möchte ich anmerken, dass RGB-Werte nicht "absolut" sind - sie brauchen einen Farbraum, auf den sie sich beziehen, z.B. sRGB. Eine Formel zur Umrechnung von RAL<->sRGB wird leicht andere Koeffizienten haben als eine Formel für RAL<->AdobeRGB ...
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 15:53
Danke für die Info.
Hier ist z.B. eine entsprechende Umrechung von RAL nach RBG aufgeschlüsselt.

http://www.tcdo99.de/tt600r/technik/.../ralfarben.htm

Wollte eben nur wissen, ob es da etwas gibt von Delphi selber.

Viele Grüße
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#4

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 16:27
Es gibt wohl noch mehr RAL-Werte. Zitat: "Verbindliche sRGB-Werte [...] entnehmen Sie bitte unserer Software RAL DIGITAL".
Oder man geht zu Wikipedia und nutzt die CIE L*a*b* Werte dort.

Farbräume sind ein bisschen wie Codepages für AnsiStrings. In einfachen Anwendungsfällen kann man sie ignorieren, aber wenn man Daten wirklich korrekt verarbeiten möchte, dann muss man sie berücksichtigen. Ein AnsiChar mit dem Wert 65 ($41) z.B. entspricht eben nicht immer dem Zeichen 'A', ebenso wie der RGB-Wert $00FF00 (0, 255, 0) nicht immer der Farbe grün entspricht. In der Analogie wäre der L*a*b*-Farbraum dann Unicode.

Geändert von SMO ( 2. Dez 2015 um 16:33 Uhr)
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#5

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 16:38
Danke schön für deine Infos.
Das muss für mein Anwendungsfall nicht 100%ig sein, sprich der Standard Farbraum reicht mir da.
Ich baue mir jetzt einfach eine Übersetzungstabelle gemäß dieser Seite und das reicht mir auch.

http://www.tcdo99.de/tt600r/technik/.../ralfarben.htm

Viele Grüße
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 16:51
Das macht dann ölf dreiundfüffzig:

Delphi-Quellcode:
unit RALtoRGB;

interface

uses
  System.SysUtils,
  System.Generics.Collections,
  Vcl.Graphics,
  Winapi.Windows;

type
  TRALColor = 1000 .. 9050;

  TColorConverter = class
  strict private
    class var
      FTable: TDictionary<TRALColor, TColor>;
  strict private
    class constructor Create;
    class destructor Destroy;
    class procedure InitTable;
  public
    class function TryRALtoRGB(const RAL: TRALColor; out RGB: TColor): Boolean;
  end;

const
  RALColors: TArray<TRALColor> = [
    1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1023, 1024, 1026, 1027, 1028, 1032, 1033, 1034,
    2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012,
    3000, 3001, 3002, 3003, 3004, 3005, 3007, 3009, 3011, 3012, 3013, 3014, 3015, 3016, 2017, 3018, 3020, 3022, 3024, 3026, 3027, 3031,
    4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010,
    5000, 5001, 5002, 5003, 5004, 5005, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024,
    6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6024, 6025, 6026, 6027, 6028, 6029, 6032, 6033, 6034,
    7000, 7001, 7002, 7003, 7004, 7005, 7006, 7008, 7009, 7010, 7011, 7012, 7013, 7015, 7016, 7021, 7022, 7023, 7024, 7026, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7042, 7043, 7044, 7045, 7046, 7047,
    8000, 8001, 8002, 8003, 8004, 8007, 8008, 8011, 8012, 8014, 8015, 8016, 8017, 8019, 8022, 8023, 8024, 8025, 8028, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9010, 9011, 9016, 9017, 9018
    ];

implementation

class constructor TColorConverter.Create;
begin
  FTable := TDictionary<TRALColor, TColor>.Create;
  InitTable;
end;

class destructor TColorConverter.Destroy;
begin
  FTable.Free;
end;

class procedure TColorConverter.InitTable;
var
  RGBColors: TArray<TColor>;
  I: Integer;
begin
  RGBColors := [
    RGB(214, 199, 148),
    RGB(217, 186, 140),
    RGB(214, 176, 117),
    RGB(252, 163, 041),
    RGB(227, 150, 036),
    RGB(201, 135, 033),
    RGB(224, 130, 031),
    RGB(227, 122, 031),
    RGB(173, 122, 079),
    RGB(227, 184, 056),
    RGB(255, 245, 227),
    RGB(240, 214, 171),
    RGB(252, 235, 204),
    RGB(255, 245, 066),
    RGB(255, 171, 089),
    RGB(255, 214, 077),
    RGB(163, 140, 122),
    RGB(156, 143, 097),
    RGB(252, 189, 031),
    RGB(252, 184, 033),
    RGB(181, 140, 079),
    RGB(255, 255, 010),
    RGB(153, 117, 033),
    RGB(255, 140, 026),
    RGB(227, 163, 041),
    RGB(255, 148, 054),
    RGB(247, 153, 092),
    RGB(224, 094, 031),
    RGB(186, 046, 033),
    RGB(204, 036, 028),
    RGB(255, 099, 054),
    RGB(242, 059, 028),
    RGB(252, 028, 020),
    RGB(255, 117, 033),
    RGB(250, 079, 041),
    RGB(235, 059, 028),
    RGB(212, 069, 041),
    RGB(237, 092, 041),
    RGB(222, 082, 071),
    RGB(171, 031, 028),
    RGB(163, 023, 026),
    RGB(163, 026, 026),
    RGB(138, 018, 020),
    RGB(105, 015, 020),
    RGB(079, 018, 026),
    RGB(046, 018, 026),
    RGB(094, 033, 033),
    RGB(120, 020, 023),
    RGB(204, 130, 115),
    RGB(150, 031, 028),
    RGB(217, 102, 117),
    RGB(232, 156, 181),
    RGB(166, 036, 038),
    RGB(209, 054, 084),
    RGB(207, 041, 066),
    RGB(199, 023, 018),
    RGB(217, 089, 079),
    RGB(252, 010, 028),
    RGB(252, 020, 020),
    RGB(181, 018, 051),
    RGB(166, 028, 046),
    RGB(130, 064, 128),
    RGB(143, 038, 064),
    RGB(201, 056, 140),
    RGB(092, 008, 043),
    RGB(099, 061, 156),
    RGB(145, 015, 102),
    RGB(056, 010, 046),
    RGB(125, 031, 122),
    RGB(158, 115, 148),
    RGB(191, 023, 115),
    RGB(023, 051, 107),
    RGB(010, 051, 084),
    RGB(000, 015, 117),
    RGB(000, 023, 069),
    RGB(003, 013, 031),
    RGB(000, 046, 122),
    RGB(038, 079, 135),
    RGB(026, 041, 056),
    RGB(023, 069, 112),
    RGB(000, 043, 112),
    RGB(003, 020, 046),
    RGB(041, 115, 184),
    RGB(000, 018, 069),
    RGB(077, 105, 153),
    RGB(023, 097, 171),
    RGB(000, 059, 128),
    RGB(056, 148, 130),
    RGB(010, 066, 120),
    RGB(005, 051, 051),
    RGB(026, 122, 099),
    RGB(000, 008, 079),
    RGB(046, 082, 143),
    RGB(087, 140, 181),
    RGB(051, 120, 084),
    RGB(038, 102, 041),
    RGB(038, 087, 033),
    RGB(061, 069, 046),
    RGB(013, 059, 046),
    RGB(010, 056, 031),
    RGB(041, 043, 036),
    RGB(028, 038, 023),
    RGB(033, 033, 026),
    RGB(023, 041, 028),
    RGB(054, 105, 038),
    RGB(094, 125, 079),
    RGB(031, 046, 043),
    RGB(117, 115, 079),
    RGB(051, 048, 038),
    RGB(041, 043, 038),
    RGB(015, 112, 051),
    RGB(064, 130, 054),
    RGB(079, 168, 051),
    RGB(191, 227, 186),
    RGB(038, 056, 041),
    RGB(133, 166, 122),
    RGB(043, 038, 028),
    RGB(036, 145, 064),
    RGB(074, 110, 051),
    RGB(010, 092, 051),
    RGB(125, 204, 189),
    RGB(038, 074, 051),
    RGB(018, 120, 038),
    RGB(041, 138, 064),
    RGB(066, 140, 120),
    RGB(125, 189, 181),
    RGB(115, 133, 145),
    RGB(135, 148, 166),
    RGB(122, 117, 097),
    RGB(112, 112, 097),
    RGB(156, 156, 166),
    RGB(097, 105, 105),
    RGB(107, 097, 087),
    RGB(105, 084, 056),
    RGB(077, 082, 074),
    RGB(074, 079, 074),
    RGB(064, 074, 084),
    RGB(074, 084, 089),
    RGB(071, 066, 056),
    RGB(061, 066, 082),
    RGB(038, 046, 056),
    RGB(026, 033, 041),
    RGB(061, 061, 059),
    RGB(122, 125, 117),
    RGB(048, 056, 069),
    RGB(038, 051, 056),
    RGB(145, 143, 135),
    RGB(077, 092, 107),
    RGB(189, 186, 171),
    RGB(122, 130, 117),
    RGB(143, 135, 112),
    RGB(212, 217, 219),
    RGB(158, 150, 156),
    RGB(122, 125, 128),
    RGB(186, 189, 186),
    RGB(097, 094, 089),
    RGB(158, 163, 176),
    RGB(143, 150, 153),
    RGB(064, 069, 069),
    RGB(194, 191, 184),
    RGB(143, 148, 158),
    RGB(120, 130, 140),
    RGB(217, 214, 219),
    RGB(125, 092, 056),
    RGB(145, 082, 046),
    RGB(110, 059, 048),
    RGB(115, 059, 036),
    RGB(133, 056, 043),
    RGB(094, 051, 031),
    RGB(099, 061, 036),
    RGB(071, 038, 028),
    RGB(084, 031, 031),
    RGB(056, 038, 028),
    RGB(077, 031, 028),
    RGB(061, 031, 028),
    RGB(046, 028, 028),
    RGB(043, 038, 041),
    RGB(013, 008, 013),
    RGB(156, 069, 041),
    RGB(110, 064, 048),
    RGB(102, 074, 061),
    RGB(064, 046, 033),
    RGB(255, 252, 240),
    RGB(240, 237, 230),
    RGB(255, 255, 255),
    RGB(028, 028, 033),
    RGB(003, 005, 010),
    RGB(166, 171, 181),
    RGB(125, 122, 120),
    RGB(250, 255, 255),
    RGB(013, 018, 026),
    RGB(252, 255, 255),
    RGB(020, 023, 028),
    RGB(219, 227, 222)
    ];

  for I := low(RALColors) to high(RALColors) do
  begin
    FTable.Add(RALColors[I], RGBColors[I]);
  end;
end;

class function TColorConverter.TryRALtoRGB(const RAL: TRALColor; out RGB: TColor): Boolean;
begin
  Result := FTable.TryGetValue(RAL, RGB);
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 18:41
[OT]
mal blöd gefragt, wenn ich jetzt eine RAL Farb Nummer habe, dann kann ich mit Hilfe dieser Tabelle(n) diese Farbe auf den Bildschirm bringen, oder noch spezieller, ich kann zwei RAL-Farben miteinander vergleichen?
ich ab eine Farbsehschwäche, da sieht man einige Dinge anders
[/OT]

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#8

AW: RAL Farbe zu RBG zu TColor

  Alt 2. Dez 2015, 19:50
Das macht dann ölf dreiundfüffzig:
Danke für den Code!


[OT]
mal blöd gefragt, wenn ich jetzt eine RAL Farb Nummer habe, dann kann ich mit Hilfe dieser Tabelle(n) diese Farbe auf den Bildschirm bringen, oder noch spezieller, ich kann zwei RAL-Farben miteinander vergleichen?
ich ab eine Farbsehschwäche, da sieht man einige Dinge anders
[/OT]
Ja, du kannst damit RAL-Farben auf den Bildschirm bringen, und du kannst so auch zwei RAL-Farben miteinander vergleichen.
Aber: Die angezeigten Farben können mehr oder minder stark von den "echten" Farben abweichen, die ein physisches Objekt mit dem entsprechenden RAL-Code haben würde.
Um diese Abweichung zu minimieren, müsste der Bildschirm vorher kalibriert/profiliert worden sein und man muss farbmanagementfähige Software zum Betrachten benutzen.
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
260 Beiträge
 
Delphi XE5 Professional
 
#9

AW: RAL Farbe zu RBG zu TColor

  Alt 3. Dez 2015, 09:50
Wenn du auch noch die anderen RAL "Farbkarten" brauchst findest du sie hier:

http://colorscheme.ru/ral-colors/ral-classic.html
http://colorscheme.ru/ral-colors/ral-design.html
http://colorscheme.ru/ral-colors/ral-effect.html
Dirk
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#10

AW: RAL Farbe zu RBG zu TColor

  Alt 3. Dez 2015, 11:04
mal blöd gefragt, ...
Du kannst die RGB-Werte vergleichen, bzw. dir ansehen wieviel von jedem Farbanteil drin ist.

Ein kallibrierter Monitor und dann könnte man eventuell die Sehschwäche noch mit einrechnen lassen ....


Vorteil hier: Es gibt Musterbögen mit diesen Farben, da ist der Monitor nicht mehr das Problem.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr.
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