質問: palette; dest2.Save("indexcolor.bmp"); } そもそも「dest.Palette」で取得したパレット自体が「palette.Entries.Length」の ところで「0」となってしまっているようで、その原因が解らずに居る状況です。 是非、皆さんのお力を貸してください。 宜しくお願い致します。
回答: 通常のビットマップといっているのはたぶん24ビット以上のビットマップのことだと思いますが、パレットがありません。ですのでパレットの数が0です。 パレットのないBMPからインデックスあり(256色以下)のビットマップに変換するには単純なものだとcloneでできます。 ``` using (var srcFs = new FileStream(@"src.bmp", FileMode.Open)) { using (var srcBmp = new Bitmap(srcFs)) { using (var dstFs = new FileStream(@"dst.bmp", FileMode.Create, FileAccess.Write)) { var dstBmp = srcBmp.Clone(new Rectangle(0, 0, srcBmp.Width, srcBmp.Height), PixelFormat.Format8bppIndexed); dstBmp.Save(dstFs, ImageFormat.Bmp); } } } ```