インデックス画素フォーマットのピクチャに対してSetpixel(インデックス画素フォーマットの画像はSetPixelをサポートしない)ソリューションを行う


最近、認証コード識別ソフトウェアが作成されました.ここでpng,jpgピクチャの二値化処理では,インデックス画素フォーマットの画像がSetPixelソリューションをサポートしていないというエラーが発生した.字面から見ると、インデックス色の画像に直接RGB色を設定したことを示していますが、インデックス色の画像の色はパレットから来ているので、この操作は不正です.ネット上の解決方法が頼りにならないのを見て、この文を書いて、初心者を助けます.
C++の場合、パレットオフセットを分析し、色配列を変換します.しかし、機能が強い.Netでは、BitmapオブジェクトにClone()関数が付属していることは明らかです.Bitmapオブジェクトをクローンし、PixelFormatをインデックスなしフォーマットに設定すればいいです.私のこのソフトウェアでは、Format 24 bppRgbフォーマットを使用しています(各ピクセル24ビット、赤、緑、青の成分はそれぞれ8ビットで指定されています).
Bitmap img1 = new Bitmap(paths);

Bitmap imgtarget = img1.Clone(new Rectangle(0, 0, img1.Width, img1.Height),PixelFormat.Format24bppRgb);

//Do something.