Web アプリケーションで画像のコントラスト、シャープ、ウォーム、クロップ、元に戻す、やり直し機能を開発したいと考えています。この機能を開発する方法を教えてください。.GetPixel() と .SetPixel() は非常に遅い方法であるため、使用したくありません。これらの機能を開発する他の方法を教えてください。
前もって感謝します。
画像のピクセル データにより高速にアクセスする必要がある場合は、 を使用しますImage.LockBits
。このコードを含むメソッドはすべてマークする必要があることに注意してくださいunsafe
。
BitmapData bitmapData = image.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);
int* bitmapPtr = (int*)bitmapData.Scan0.ToPointer();
for (int pixelCount = 0; pixelCount <= image.Width * image.Height; pixelCount++)
{
bitmapPtr[pixelCount] = ...;
// etc
}
image.UnlockBits(bitmapData);