Jak sprawdzić ilu bitowa jest wczytana bitmapa?

0

jak wyżej

0

odczytać wartość PitPerPixel z nagłówka bitmapy

VAR
  FileHeader: TBITMAPFILEHEADER; 
  InfoHeader: TBITMAPINFOHEADER;

lub

 THeader = RECORD
   Typ         :ARRAY [0..1] OF Char;
   FSize       :LongInt;
   Wolne1      :Word;
   Wolne2      :Word;
   OFFSET      :LongInt;
   Info        :LongInt;
   Szer        :LongInt;
   Wys         :LongInt;
   Plany       :Word;
   BitPerPixel :Word;
   Kompresja   :LongInt;
   Rozmiar     :LongInt;
   HDPI        :LongInt;
   VDPI        :LongInt;
   Kolory      :LongInt;
   Znaczace    :LongInt;
 END;
0

jak nie wiesz co ci Oleksy nabazgrał to jak niżej ;-P (troszke bardziej ograniczone ) :

function ileBitow(const Bitmapa:TBitmap):byte;
begin
case Bitmapa.PixelFormat of
pf32bit:Result:=32;
pf24bit:Result:=24;
pf16bit:Result:=16;
pf8bit:Result:=8;
pf1bit:Result:=1;
else Result:=0   // jak ci zwróci 0 to znaczy że inne niż powyżej
end;

Małe objaśnienie
Możliwe są jescze 2 typy pfDevice (zależny od urządzenia ) oraz pfCustom (inne) . e takim przypadku nie wiadomo (tzn chyba ze wiesz) ile ma bitów

0

ten kod piwyzej zwrocui tylko wtedy kiedy zaldaujesz bitmape z tbitmap.loadfromfile('plik.bmp');

1 użytkowników online, w tym zalogowanych: 0, gości: 1