8BitのBitmapを24Bitで保存したときの色化け対策

8Bitなど、パレットのあるBitmapを読み込んで24(32)Bitで保存した場合グラフィックビューアなどで見ると色が化けてしまいます。これを防ぐには保存する前にビットマップが保持しているパレットを破棄する必要があります(TBitmapのPaletteプロパティに0を代入する)。

var
  Bmp : TBitmap;
begin
  {...いろいろな処理...}
  //pf8Bit以上のときはパレットは要らない
  if Bmp.PixelFormat in [pf15bit..pf32bit] then
    Bmp.Palette := 0;//パレットを破棄
  Bmp.SaveToFile(FileName);
  {...いろいろな処理...}
end;

Copyright 2001 Rinka Kouzuki All Rights Reserved.