Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi bitmap pf8bit jedes pixel nur mit einem byte speichern (https://www.delphipraxis.net/56299-bitmap-pf8bit-jedes-pixel-nur-mit-einem-byte-speichern.html)

etom291272 3. Nov 2005 14:08


bitmap pf8bit jedes pixel nur mit einem byte speichern
 
guten tag zusammen

Ist es möglich ein 256 farben bitmap so in einem stream zu speichern dass die farbe jedes pixel nur mit einem einzelnen byte representiert wird :?:

ich versuche über scanline einen zeiger auf die linie zu erhalten und lese dann jeden teil des arrays (was ja dann eigentlich das byte sein müsste aus)
Delphi-Quellcode:
P, P2: PByteArray;
...
for x := 0 to Bitm1.Width - 1 do
    begin
      if (P[x] <> P2[x]) then
     begin
        Inc(CountFalsePixel);
        Inc(aLauf);
        Daten[aLauf].Farbe:= P2[x];
...
in daten i sind dann auch werte zwischen 0 und 255 aber ich fürchte dass entspricht nicht der farbe

in anderes bitmap einlesen dann so

Delphi-Quellcode:
  for i:=0 to 200000 do   //Length(Daten) -1 do
  begin
    inc(AktSpalte);
    Image2.Picture.Bitmap.Canvas.Pixels[AktZeile,AktSpalte]:=Daten[i].Farbe;
    if AktSpalte = 100 then inc(AktZeile);
    if AktSpalte>100 then AktSpalte:=-1;
  end;
  ShowMessage('fertig'+' Anzahl Items Liste: '+inttostr(ListBox1.Items.Count));
er zeichnet zwar aber nur rot warscheinlich weil dass dann nur der rotanteil ist
kann man nur mit einem byte eine farbe bei einem pf8bit bitmap abspeichern :?:

Flocke 3. Nov 2005 14:13

Re: bitmap pf8bit jedes pixel nur mit einem byte speichern
 
Du benötigst zusätzlich auch die Palette - bei einer 8-Bit-Bitmap ist die Farbe der Pixelwert (0-255) nur ein Index in die Farbtabelle (Palette).

etom291272 3. Nov 2005 14:15

Re: bitmap pf8bit jedes pixel nur mit einem byte speichern
 
danke für die schnelle antwort

wo bekomme ich die richtige palette her und wie weise ich dann die entsprechende farbe
dem pixel zu ???

etom291272 3. Nov 2005 14:35

Re: bitmap pf8bit jedes pixel nur mit einem byte speichern
 
hat sich erledigt

Delphi-Quellcode:
var
  MeinePalette:HPALETTE;
...
MeinePalette:=Image3.Picture.Bitmap.Palette;

Image4.Picture.Bitmap.Palette:=MeinePalette;
Image4.Picture.Bitmap.Canvas.Pixels[AktZeile,AktSpalte]:=PaletteIndex(Daten[i].Farbe);
:dp:


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