对PNG图进行计算,原理是对某一像素周围九个点的RGB值进行平均,然后将平均值赋给该像素。 if ((Int16)(bytes[4 * (j - 1) + (i - 1) * bmd.Stride + 2]) != 0)
                                                {
                                                        alpha = ((Int16)(bytes[4 * (j - 1) + (i - 1) * bmd.Stride + 3]) + (Int16)(bytes[4 * (j - 1) + i * bmd.Stride + 3]) +
                                                                (Int16)(bytes[4 * (j - 1) + (i + 1) * bmd.Stride + 3]) + (Int16)(bytes[4 * j + (i - 1) * bmd.Stride + 3]) +
                                                                (Int16)(bytes[4 * j + i * bmd.Stride + 3]) + (Int16)(bytes[4 * j + (i + 1) * bmd.Stride + 3]) +
                                                                (Int16)(bytes[4 * (j + 1) + (i - 1) * bmd.Stride + 3]) + (Int16)(bytes[4 * (j + 1) + i * bmd.Stride + 3]) +
                                                                (Int16)(bytes[4 * (j + 1) + (i + 1) * bmd.Stride + 3])) / 9;
                                                }
                                                else
                                                {
                                                        alpha = 0;
                                                }
                                                        blue = ((Int16)(bytes[4 * (j - 1) + (i - 1) * bmd.Stride  ]) + (Int16)(bytes[4 * (j - 1) + i * bmd.Stride  ]) + 
                                                        (Int16)(bytes[4 * (j - 1) + (i + 1) * bmd.Stride  ]) +(Int16)(bytes[4 * j + (i - 1) * bmd.Stride  ]) + 
                                                        (Int16)(bytes[4 * j + i * bmd.Stride  ]) + (Int16)(bytes[4 * j + (i + 1) * bmd.Stride    ]) +
                                                        (Int16)(bytes[4 * (j + 1) + (i - 1) * bmd.Stride  ]) + (Int16)(bytes[4 * (j + 1) + i * bmd.Stride  ]) + 
                                                        (Int16)(bytes[4 * (j + 1) + (i + 1) * bmd.Stride  ])) / 9;                                                green = ((Int16)(bytes[4 * (j - 1) + (i - 1) * bmd.Stride + 1]) + (Int16)(bytes[4 * (j - 1) + i * bmd.Stride + 1]) +
                                                        (Int16)(bytes[4 * (j - 1) + (i + 1) * bmd.Stride + 1]) + (Int16)(bytes[4 * j + (i - 1) * bmd.Stride + 1]) +
                                                        (Int16)(bytes[4 * j + i * bmd.Stride + 1]) + (Int16)(bytes[4 * j + (i + 1) * bmd.Stride + 1]) +
                                                        (Int16)(bytes[4 * (j + 1) + (i - 1) * bmd.Stride + 1]) + (Int16)(bytes[4 * (j + 1) + i * bmd.Stride + 1]) +
                                                        (Int16)(bytes[4 * (j + 1) + (i + 1) * bmd.Stride + 1])) / 9;                                                red = ((Int16)(bytes[4 * (j - 1) + (i - 1) * bmd.Stride + 2]) + (Int16)(bytes[4 * (j - 1) + i * bmd.Stride + 2]) +
                                                        (Int16)(bytes[4 * (j - 1) + (i + 1) * bmd.Stride + 2]) + (Int16)(bytes[4 * j + (i - 1) * bmd.Stride + 2]) +
                                                        (Int16)(bytes[4 * j + i * bmd.Stride + 2]) + (Int16)(bytes[4 * j + (i + 1) * bmd.Stride + 2]) +
                                                        (Int16)(bytes[4 * (j + 1) + (i - 1) * bmd.Stride + 2]) + (Int16)(bytes[4 * (j + 1) + i * bmd.Stride + 2]) +
                                                        (Int16)(bytes[4 * (j + 1) + (i + 1) * bmd.Stride + 2])) / 9;                                                bytes[4 * j + i * bmd.Stride + 3] = Convert.ToByte(alpha );
                                                bytes[4 * j + i * bmd.Stride + 2] = Convert.ToByte(red);
                                                bytes[4 * j + i * bmd.Stride + 1] = Convert.ToByte(green);
                                                bytes[4 * j + i * bmd.Stride ] = Convert.ToByte(blue);
处理前PNG图像:处理后: