グラフィック描画を使用して256x256色空間イメージを作成するにはどうすればよいですか?現在、私はポインタを使って各ピクセル位置をループして設定しています。青はXで0 ... 255、Yで0 ... 255になります。画像は初期化されています。イメージを描画するには?
Bitmap image = new Bitmap(256, 256);
imageData = image.LockBits(new Rectangle(0, 0, 256, 256),
ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
for (int row = 0; row < 256; row++)
{
byte* ptr = (byte*)imageData.Scan0 + (row * 768);
for (int col = 0; col < 256; col++)
{
ptr[col * 3] = (byte)col;
ptr[col * 3 + 1] = (byte)(255 - row);
ptr[col * 3 + 2] = 0;
}
}
私は赤で0 ... 255になるスライダーを持っています。各スクロールで、このループを通過し、イメージを更新します。
for (int row = 0; row < 256; row++)
{
byte* ptr = (byte*)imageData.Scan0 + (row * 768);
for (int col = 0; col < 256; col++)
{
ptr[col * 3 + 2] = (byte)trackBar1.Value;
}
}
私は、スクロール部分の代わりにColorMatrixを使用する方法を考え出しましたが、どのように私は、ポインタまたはsetPixelを使うことなく画像を初期化することができますか?
なぜポインタを使用していますか? –
私はポインタを使用しています。なぜなら、値をループで直接更新できるだけなので、理解して使用するのが最も簡単な方法だったからです。 GetPixelとSetPixelを使用するよりも高速でした。 – Jack