我知道如何实现它们,但什么我不知道的是是否应用转变的像素或是有另一种方式会影响整个图像,使用一个单一的呼叫,等等?

据我所知得到的。设定像素是非常缓慢。我不知道如果他们没有这种方式。

所以如果这是灰度/饱和度过滤器作为一个简单的情况下,如何写的吗?

有帮助吗?

解决方案

你要锁的图像,然后与存储直接绕过SetPixel方法。看看这里 甚至更好 在这里,

举个例子来说你可以设定的蓝色255如下

   BitmapData bmd=bm.LockBits(new Rectangle(0, 0, 10, 10), System.Drawing.Imaging.ImageLockMode.ReadOnly, bm.PixelFormat);
      int PixelSize=4;
      for(int y=0; y<bmd.Height; y++)
      {
        byte* row=(byte *)bmd.Scan0+(y*bmd.Stride);
        for(int x=0; x<bmd.Width; x++)
        {
          row[x*PixelSize]=255;
        }
      } // it is copied from the last provided link.

其他提示

为了实现更快的性能,您可能想看看WPF的像素着色器效果的实现,与所有的.NET WPF可视化对象的作品,而不仅仅是图像。

看一看的物品说明这样的效果的一些基本的实施步骤:

HTTP://bursjootech.blogspot。 COM / 2008/06 /灰度效果的像素着色器效果的in.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top