![]() |
256 Farben
Ich habe einen Wertebereich von 0..255. Jeder Wert soll einer Farbe entsprechen. Wie bekomme ich es hin, dass 0 z.B. weis und 255 schwarz ist oder gibt es schon eine vordefinierte Konstanten?
|
AW: 256 Farben
Delphi-Quellcode:
Farben bestehen aus R G B, jeweils 0..255 ist möglich
var
Farbe: TColor; begin Farbe := clWhite; Farbe := clBlack; // usw, zu finden in Vcl.Graphics.pas Also
Delphi-Quellcode:
Farbe := RGB(hier drei mal werte von 0 bis 255);
|
AW: 256 Farben
Zitat:
Grüße Klaus |
AW: 256 Farben
ja, 65535, normal oder?
welche kombination er nimmt ist ihm überlassen. |
AW: 256 Farben
nun, aber der TE hat einen Farbraum von 256 Farben
ok |
AW: 256 Farben
Stichwort: Farbtabelle
Nja, die Frage wäre bestimmt einfacher zu beantworten, wenn man wüsste, worum es eigentlich geht. |
AW: 256 Farben
Zitat:
Zitat:
Willst Du 256 verschiedene Farben definieren brauchst Du ein Array mit 256 Werten vom Typ TColor. Delphi hat eine ganze Reihe Konstanten für vordefinierte Farbwerte. Ansonsten kannst Du dir auch selber Farben mit Hilfe der drei Grundfarben erstellen. Zum Beispiel so:
Delphi-Quellcode:
Farbe := TColor(RGB(255, 255, 0)); // Gelb
|
AW: 256 Farben
Zitat:
|
AW: 256 Farben
Zitat:
...:cat:... |
AW: 256 Farben
klar 16 millionen... was ging mir vorhin nur durch den kopf??? :wall: Mein Fehler!
|
AW: 256 Farben
Liste der Anhänge anzeigen (Anzahl: 1)
Das Ergebnis sollen die Farben der Farbtabelle im Anhang werden.
Der Wert 1 steht für weis und 255 für schwarz. |
AW: 256 Farben
hallo, schau mal dein bild an, dort steht alles was benötigt ist. (farbwert in hex = 3 byte)
|
AW: 256 Farben
Mit den HEX-Werte habe ich gesehen. Heist es jetzt alle 256 HEX wert als Konstante ablegen oder gibt es bei den Werte einen festes System?
|
AW: 256 Farben
Wie kommst Du auf die 256 - oder 0 oder 255?
In der farbigen Grafik sehe ich da nichts davon. Soll die Anordnung auch so sein wie in der Grafik? Willst Du die Grafik mit einem Programm erzeugen? |
AW: 256 Farben
Zitat:
In Delphi würde man es eventuell so machen:
Delphi-Quellcode:
Dann kannst du über dieses Array bequem wählen.
const
Farben : array [0..255] of TColor = ( $EEEEEE, $0D0D0D, // usw usw usw usw bis du insgesamt alles hast was du brauchst );
Delphi-Quellcode:
var
Farbe : TColor; begin Farbe := Farben[123]; |
AW: 256 Farben
Und da es hier ein paar Muster in den Zahlenfolgen gibt, kann man mit einer Hand voll Schleifen auch die 256 Farbwerte füllen/generieren lassen.
|
AW: 256 Farben
Die Grafik "Farbtabelle" hat übriegens 276 Einträge, wenn ich mich mal nicht verzählt hab ...
|
AW: 256 Farben
Zitat:
...:cat:... |
AW: 256 Farben
Mal so zur Entspannung:
Delphi-Quellcode:
unit Main;
interface uses Vcl.Graphics, Vcl.GraphUtil, Vcl.Forms, System.Classes, Vcl.Controls, Vcl.ExtCtrls; type TForm1 = class(TForm) PaintBox1: TPaintBox; procedure FormCreate(Sender: TObject); procedure PaintBox1Paint(Sender: TObject); private { Private-Deklarationen } FColorArr: array of TColor; procedure DrawColorItem(ACanvas: TCanvas; x, y: Integer; AColor: TColor); procedure DrawColorTabelle(ACanvas: TCanvas; x0, y0: Integer); procedure InitColorArr; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin InitColorArr; end; procedure TForm1.DrawColorItem(ACanvas: TCanvas; x, y: Integer; AColor: TColor); const {Größe des Quadrat} Cdx1 = 20; Cdy1 = 20; {relative Position der Schrift} Cdx2 = 24; Cdy2 = 02; begin {Umrandung} ACanvas.Pen.Style := psSolid; ACanvas.Pen.Mode := pmCopy; ACanvas.Pen.Color := clBlack; ACanvas.Pen.Width := 1; {Füllung} ACanvas.Brush.Style := bsSolid; ACanvas.Brush.Color := AColor; {Quadrat} ACanvas.Rectangle(x, y, x + Cdx1, y + Cdy1); {Hintergrund transparent} ACanvas.Brush.Style := bsClear; {Schrift} ACanvas.Font.Color := clBlack; ACanvas.Font.Size := 9; ACanvas.Font.Name := 'Courier New'; ACanvas.TextOut(x + Cdx2, y + Cdy2, Copy(ColorToWebColorStr(ColorToRGB(AColor)), 2)); end; procedure TForm1.DrawColorTabelle(ACanvas: TCanvas; x0, y0: Integer); const {Breite der Spalten und Höhe der Zeilen} Cdx = 80; Cdy = 24; var x, y, n: Integer; begin n := 0; for x := 0 to 7 do begin if (x = 0) or (x = 7) then begin for y := 3 to 32 do begin DrawColorItem(PaintBox1.Canvas, x0 + x * Cdx, y0 + y * Cdy, FColorArr[n]); Inc(n); end; end else begin for y := 0 to 35 do begin DrawColorItem(PaintBox1.Canvas, x0 + x * Cdx, y0 + y * Cdy, FColorArr[n]); Inc(n); end; end; end; end; procedure TForm1.InitColorArr; var i: Integer; begin SetLength(FColorArr, 276); for i := Low(FColorArr) to High(FColorArr) do FColorArr[i] := TColor(Random(256*256*256)); end; procedure TForm1.PaintBox1Paint(Sender: TObject); begin DrawColorTabelle(PaintBox1.Canvas, 30, 10); end; end. |
AW: 256 Farben
Du sollst doch nicht seine Hausaufgaben lösen.
|
AW: 256 Farben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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