Einzelnen Beitrag anzeigen

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