我想在我的网络应用程序中开发图像对比度,锐化,温暖,裁剪,撤消,重做功能。请告诉我如何开发此功能?我不想使用.GetPixel()和.SetPixel()因为它是非常慢的方法。所以请告诉我任何其他方式来开发这些功能。
先谢谢。
答案 0 :(得分:0)
如果您需要更快地访问图像上的像素数据,请使用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);