AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Farbpaltte erstellen mit 255 farben
Thema durchsuchen
Ansicht
Themen-Optionen

Farbpaltte erstellen mit 255 farben

Ein Thema von mimi · begonnen am 6. Nov 2005 · letzter Beitrag vom 20. Nov 2005
Antwort Antwort
Seite 1 von 3  1 23      
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 15:16
Hallo,
ich habe schon die suche bentutz aber leider nichts passendes zu meinem problem gefunden.

Ich möchte auf ein panel 255 farben dastellen und zwar so:
die hellen farbtöne sollen oben sein und die dunkeln unten.

Ich habe die TShape genommen und auch schon einiges versucht mein erster gedanke war:
Delphi-Quellcode:
  for i:=0 to 255 do begin
    Shape:=TShape.Create(self);
    Shape.Left:=(18)*i;
    Shape.top:=25;
    Shape.Width:=16;
    Shape.Height:=16;
    Shape.Brush.Color:=i;
    Shape.Parent:=ScrollBox2;
  end;
aber leider sehe ich so nur die schwartz und rot töne aber die andren nicht.
dann wollte ich es mit RGB(mit der Funktion) das ging dann auch nicht:
Delphi-Quellcode:
 end;
      for i:=0 to 255 do begin
        Shape:=TShape.Create(self);
        Shape.Left:=(18)*i;
        Shape.top:=25;
        Shape.Width:=16;
        Shape.Height:=16;
        if 255-i < 45 then break;
        Shape.Brush.Color:=RGB(0,i,255-i);
        Shape.Parent:=ScrollBox2;
      end;
so sehe ich leider auch nicht alle töne....

ich hoffe einer kann mir ein kleinen tip geben wir ich mein problem lösen kann.
(aufjedenfall währe ich dankbar *G*)

!!! Vielen Danke im Vorraus !!!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#2

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 15:22
schwierig. wenn in 8 bit 3 kanaele passen sollen, musst du 2.67 bit je kanal veranschlagen.

beherrschst du bitshifting operatoren?
Christoph
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 16:09
Hey,
ich glaube ich hab noch nicht ganz verstanden was du machen willst. Deshalb mal ein Ansatz, der sich vielleicht auch in eine völlig andere Richtung bewegt.
Ich würde dir jedenfalls dazu raten, mit einer Bitmap und einem Panel zu arbeiten (Genau genommen mit einer Bitmap, einem Image und Panel). Das Image platzierst du dann auf dem Panel und schaltest Stretched auf True.
Um die Farben zu erzeugen, benutzt du einfach eine Hintergrundbitmap, in der du jeder Zeile mit der jeweiligen Farbe füllst. Da du von 255 Farben sprichst, weiß ich jetzt nicht wirklich auf welche Farben du dich beziehst. Soweit ich es weiß, ist eine 8-Bit Bitmap eine mit Farbpalette, oder?

Hier jedenfalls mal als kleines Beispiel (mit "Farbpalette").
Delphi-Quellcode:
var bitmap : TBitmap;
    i : Integer;
begin
 bitmap := TBitmap.Create;
 bitmap.Width := 1;
 bitmap.Height := 256;
 for i := 0 to 255 do
  begin
   // mit palette = Array[0..255] of Byte
   // gefüllt mit allen verwendeten Farben
   bitmap.Canvas.Pixels[0,i] := palette[i];
  end;
 image.Picture.Bitmap := bitmap;
 bitmap.Free;
end;
Wie gesagt, müsstest halt Palette füllen oder die jeweilige Farbe berechnen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#4

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 16:16
ich versuch mal mein glueck:
(pseudocode)
Delphi-Quellcode:
var
  palette: array [0..255] of cardinal;
  i: integer;
begin
  for i := 0 to 255 do
  begin
    palette[i] :=
      (i and $E0) shl (16+0)
      or
      (i and $18) shl (8+3)
      or
      (i and $07) shl (0+5);
  end;
end;
basiert auf der annahme, dass RGB 3,2,3 bit bekommen.

damit bekommst du kein reines weiss hin, aber reines schwarz.
Christoph
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 16:34
@Ripper8472
du bist schon nahr dran was ich machen wollte. nur:
ich möchte gerne wenn dies möglich ist: die hellen farben nach oben und die dunkeln nach unten und evlt. von jeden ton 4 farben(das wird warscheinlich mehr werden als 256 farben)

und um deine ersten antwort zu beantowrten: nein ich beherrsche leider keine "bitshifting operatoren"(was ist das eigentlich genau: werden dort irgenwelche byte verschoben ?)

@Der_Unwissende
eine BMP möchte ich eigentlich nicht nehmen weil die frist mit zu viel speicher und die farben kann nicht so gut geändert werden(nagut mit pixels[x,y] schon aber naja)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#6

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 16:49
Zitat von mimi:
@Ripper8472
du bist schon nahr dran was ich machen wollte. nur:
ich möchte gerne wenn dies möglich ist: die hellen farben nach oben und die dunkeln nach unten und evlt. von jeden ton 4 farben(das wird warscheinlich mehr werden als 256 farben)
moeglich, aber der code wird mehr als unfeierlich... ich probiers mal (->edit).

Zitat von mimi:
und um deine ersten antwort zu beantowrten: nein ich beherrsche leider keine "bitshifting operatoren"(was ist das eigentlich genau: werden dort irgenwelche byte verschoben ?)
jep, die bits werden hin- und hergeschoben.
beispiel: 42 ist ja 00101001
42 shl 2 (shift nach links) waere dann 10100100, also 164.

edit: ich mach doch besser nen neuen post...
Christoph
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#7

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 17:43
ich versuch mich mal. wie versprochen, es wird haarig. und ungetestet (fast...)
Delphi-Quellcode:
var
  palette: array [0..255] of cardinal;
  i: integer;
begin
  for i := 0 to 255 do
  begin
    palette[i] := { wenns umgekehrt sein soll, dann [255-i] }
      (((i and $80) shl 0) or ((i and $10) shl 2) or ((i and $04) shl 3)) shl (16) { blau }
      or
      (((i and $40) shl 1) or ((i and $02) shl 5)) shl (8) { gruen }
      or
      (((i and $20) shl 2) or ((i and $08) shl 3) or ((i and $01) shl 5)) shl (0); { rot }
  end;
end;
Miniaturansicht angehängter Grafiken
farben_211.png  
Christoph
  Mit Zitat antworten Zitat
mare_crisium

Registriert seit: 6. Nov 2005
17 Beiträge
 
Delphi 5 Standard
 
#8

Re: Farbpaltte erstellen mit 255 farben

  Alt 6. Nov 2005, 18:37
Mimi,

das mit den Farben ist nur halb so schlimm, wie's aussieht.

Der Typ Tcolor enthält je ein Byte für die Farben Rot, Grün und Blau:

Wenn Du eine Variable "farbe" vom Typ "Tcolor" einrichtest, dann kannst Du aus drei Bytes, "rot", "gruen" und "blau" die Farbe mit der Anweisung

farbe:=rot+256*gruen+256*256*blau

einstellen.

Die Helligkeit wächst mit zunehmenden Werten für "rot", "gruen" und "blau". Wenn alle drei gleich 255 sind, dann bekommst Du die Farbe weiss. Die angehängt Unit zeigt, wie's geht.

Das ist schon alles. Oder?

Mare_crisium.
Angehängte Dateien
Dateityp: pas palu200_152.pas (1,4 KB, 25x aufgerufen)
  Mit Zitat antworten Zitat
mare_crisium

Registriert seit: 6. Nov 2005
17 Beiträge
 
Delphi 5 Standard
 
#9

Re: Farbpaltte erstellen mit 255 farben

  Alt 7. Nov 2005, 22:06
Mimi,

ich hatte übersehen, dass Du ja einen Farbverlauf von hell nach Dunkel haben wolltest. Das kriegst Du mit einem TShape nicht hin. Guck' Dir
mal die angehängte Unit an. Die arbeitet mit einer TpaintBox, mit der
klappt sowas eigentlich immer.

Mare_crisium.
Angehängte Dateien
Dateityp: pas palu300_167.pas (5,1 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Farbpaltte erstellen mit 255 farben

  Alt 12. Nov 2005, 18:56
leider kann ich mich nur einmal in der woche melde und das ist heute und auch morgen *G*
ist ja nett das ihr mir soviel antworten geschrieben habt doch leider wahr keine passende dabei:
@mare_crisium
Deine beiden unit habe ich mir angeschaut doch solche beispiele hatte ich schon auf meinen rechner und bin damit auch nicht weiter gekommen

@ripper8472
Du hast mich anscheiend verstanden doch noch nicht vollständig
Ich habe leider kein bild, ich versuche es einfach mal mit farbnamen dazustellen was ich machen mööchte:
(bzw. haben möchte*G*)
Ich möchte die Komplete 256 farbpaltte dastellen genau wie im Delphi Zeichenprogramm nur:
ich würde gerne die dunkeln von den Hellen farben sortieren so das ich entscheiden kann welche oben bzw. unten sein sollen. Und von jeder farbe sollen 3-4 farb töne da sein.

!!! Vielen Dank für eure mühe !!!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20:21 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