Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   8bit PaletteIndex zu 24bit/32bit Farbe umwandeln (https://www.delphipraxis.net/172294-8bit-paletteindex-zu-24bit-32bit-farbe-umwandeln.html)

NickelM 23. Dez 2012 15:32

8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
Hi Leute,

Ich schreibe grad an einem Programm, was ein Datenformat liesst (keine Angst nicht illegales :-D)

So ich bekomm die Farben als 8bit PaletteIndex (256 Farben). So wie wandel ich diesen Index jetzt in die gleiche Index/Farbe, damit sie gleich ausieht in Win7 oder WinXP, wo es 24bit/32bit Farben Standard sind?

Ich frage deshalb, da ich keine Ahnung von Farbumwandlung oder desgleichen hab und auch keine Ahnung vom Prinzip davon habe.

Die Funktion PaletteIndex gibt mir halt nur die Farbe eines 24bit/32bit Indexes und das ist mist...

Wie kann ich den PaletteIndex für 256 Farben (8bit) umwandeln, damit er in der 24bit/32bit Farbenpalette identisch sind?

Gruß NickelM

Bummi 23. Dez 2012 16:27

AW: 8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
Delphi-Quellcode:
var
 bmp:TBitmap;
begin
  bmp:=TBitmap.Create;
  try
    bmp.LoadFromFile('C:\temp\bmp8.bmp');
    bmp.PixelFormat := pf32Bit; // pf24bit
    bmp.SaveToFile('C:\temp\bmp32.bmp');//'C:\temp\bmp24.bmp'

  finally
    bmp.Free;
  end;
end;

NickelM 23. Dez 2012 16:45

AW: 8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
Naja dies ist nicht möglich, da ich schon gesagt habe, das ich die Indexen aus einem speziellen Format auslese, und diese sind je Pixel 1 Byte PaletteIndexen.

Und wenn ich die zuweise, bekommt man diesen schönen Farbfehler, denn man von älteren Spielen kennt unter Win7/WinXp.

Bummi 23. Dez 2012 17:17

AW: 8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
Dann wirst Du irgendwo Informationen darüber haben müssen welche Farben (RGY oder YMCK etc.) welchem Index zugeordnet sind und diese per Scanline den Kanälen eines entsprechenden Bitmaps zuordnen müssen. Ob und was da wie umgerechnet werden muss kann ich mit den gegebenen Informationen nicht erraten.

freeway 23. Dez 2012 20:45

AW: 8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
evtl hilft dir das weiter
http://www.efg2.com/Lab/Library/Delp...m#PaletteIndex

NickelM 25. Dez 2012 07:46

AW: 8bit PaletteIndex zu 24bit/32bit Farbe umwandeln
 
Der Index muss einer 8bit Farbtabelle von Win 95/98 sein, genauer gesagt von DirectDraw, da sie damit dargestellt wird.
Hilft das weiter?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 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