-3

我有一个项目是图像编辑器,并且我错误地参考了市场“System.Windows.Media.Color.A.get”,而不是因为我犯了这个错误,这是我在 Visual Studio 2012 中的错误代码适用于 windows phone 8 的品牌

非常感谢您的帮助

        public WriteableBitmap Process(WriteableBitmap input)
    {
        var result = new WriteableBitmap(input.PixelWidth, input.PixelHeight);
        var resultPixels = result.Pixels;
        var inputPixels = input.Pixels;
        var ta = Color.A;
        var tr = Color.R;
        var tg = Color.G;
        var tb = Color.B;

        for (int i = 0; i < inputPixels.Length; i++)
        {
            var c = inputPixels[i];
            var a = (byte)(c >> 24);
            var r = (byte)(c >> 16);
            var g = (byte)(c >> 8);
            var b = (byte)(c);

            int gray = (r * 6966 + g * 23436 + b * 2366) >> 15;

            a = (byte)((a    * ta) >> 8);
            r = (byte)((gray * ta) >> 8);
            g = (byte)((gray * ta) >> 8);
            b = (byte)((gray * ta) >> 8);

            resultPixels[i] = (a << 24) |
                (r << 16) |
                (g << 8) |
                b;
        }
        return result;
    }
4

1 回答 1

1

你期望从下面做些什么?

var ta = Color.A;
var tr = Color.R;
var tg = Color.G;
var tb = Color.B;

根据错误,您正在使用System.Windows.Media.Color类和名为“A、R、G、B”的属性所有这些都是公共属性,但您将它们称为静态属性。如果您需要访问非静态属性,则需要创建它的对象。

于 2013-05-09T19:00:46.513 回答