C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■88188 / 親階層)  画像の描画時に変色を防ぐ方法
□投稿者/ マッチ (1回)-(2018/08/08(Wed) 23:42:06)

分類:[C#] 

C#を使ってテンプレートマッチングの練習をしております。
2つの同じ画像を比較しようとして下のようなソースを書いたのですが、
原型の色と異なるようでfalseが返ってきます。
おそらくDrawImageメソッドを使うことによって、元の画像から変色してしまっているからだと思います。
原形のまま変色せずに他のBitmapへコピーすることはできるのでしょうか。

         public void CheckImage()
         {
            Bitmap bitmapIcon = SystemIcons.Hand.ToBitmap();
            Bitmap bitmapBig = new Bitmap(bitmapIcon.Width * 2, bitmapIcon.Height * 2);
            Graphics graphics = Graphics.FromImage(bitmapBig);
            graphics.DrawImage(bitmapIcon, 0,0);
            MessageBox.Show(IsEqualBitmap(bitmapBig, SystemIcons.Hand.ToBitmap(), 0,0).ToString());
        }

        public bool IsEqualBitmap(Bitmap bitmapTarget, Bitmap bitmapImage, int nTargetX, int nTargetY)
        {
            if((nTargetX + bitmapTarget.Width) > bitmapImage.Width)
            {
                return false;
            }

            if((nTargetY + bitmapTarget.Height) > bitmapImage.Height)
            {
                return false;
            }

            for (int nY = 0; nY < bitmapTarget.Height; nY++)
            {
                for (int nX = 0; nX < bitmapTarget.Width; nX++)
                {
                    Color colorTarget = bitmapTarget.GetPixel(nX, nY);
                    Color colorImage = bitmapImage.GetPixel(nTargetX + nX, nTargetY + nY);

                    if (colorTarget != colorImage)
                    {
                        return false;
                    }
                }
            }

            return true;
        }

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: 画像の描画時に変色を防ぐ方法 /魔界の仮面弁士
 
上記関連ツリー

画像の描画時に変色を防ぐ方法 / マッチ (18/08/08(Wed) 23:42) #88188 ←Now
Re[1]: 画像の描画時に変色を防ぐ方法 / 魔界の仮面弁士 (18/08/09(Thu) 02:37) #88189
  └ Re[2]: 画像の描画時に変色を防ぐ方法 / マッチ (18/08/09(Thu) 22:58) #88224 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信