Witam
Piszę aplikację w Lazarusie, ma ona polegać na podmiance LSB. Myślałem, że pójdzie jak z płatka, ale niestety taki kod:
procedure TForm1.ButtonLoadBMPClick(Sender: TObject);
const
PixelName: array [TPixelFormat] of string = (
'Device', '1-bit', '4-bit', '8-bit', '15-bit', '16-bit',
'24-bit', '32-bit', 'Custom');
begin
OpenPictureDialog1.Execute;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Memo1.Lines.Add(PixelName[Image1.Picture.Bitmap.PixelFormat]);
end;
Pod Delphi 7 zwraca poprawne informacje zależnie od bitmapy (sprawdzałem te które można zapisać "Paint"em). Jednak pod Lazarusem 1.2.4 ten sam kod rozpoznaje tylko monochromatyczne bitmapy a pozostałe traktuje jako 24-bit
i nie wiem teraz czy bitmapa ma paletę czy nie.
ImageMain.Picture.Bitmap.RawImage.Description.AsString
Też nie rozróżnia bitmap.
Czy jest możliwość dobrania się do tych informacji bez niskopoziomowego babrania się z formatem BMP lub doinstalowywania innych pakietów/bibliotek?