質問: ### 前提・実現したいこと C#のフォームアプリケーションを用いておりbitmapに画像を取り込みクリックした画素の情報を別の色や透明度に変えるプログラムを作成しています。 ですが現在ピクセル単位のアクセス関数 SetPixel/GetPixel を用いており処理速度が非常に遅くて悩んでいます。解決方法として二つあり、 ➀ビットマップデータをアンマネージ配列にコピーしてから処理する ➁ビットマップをシステムメモリにロックして直アクセスする ものがあるのですがうまく書き換えられずに苦しんでいます。 上記どちらかの方法でどのようにしたらいいのかお教え願います。 各行の処理内容、特にGetPixel の部分が〇〇でSetPixelの部分が△△、二つのfor文で全の画素をチェックしていた横の画素数、縦の画素数がどのように変わるのかを教えていただきたいです。
回答: unsafeが可能なら直アクセスが一番簡単です。 ``` BitmapData bd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); unsafe{ for(int y=0; y