C# には Bitmap クラスが用意されているのだけれども、ちょっとばかしアルファブレンドだの加算合成だの乗算合成だのを比較的高速に処理する必要が出てきたので、メモリを直接弄ってごにょごにょしてみることにしました。 が、しかしこれが意外に頭を悩ませてくれます。 まず画像のロードですが、これは簡単です。 Bitmap bitmap = new Bitmap(filename); BitmapData data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); this.pixels = new byte[data.Stride * data.Height]; Marshal.Copy(data.Sc