gpt4 book ai didi

C# ColorMatrix 索引越界

转载 作者:太空狗 更新时间:2023-10-29 23:21:23 25 4
gpt4 key购买 nike

作为学校项目的一部分,我正在尝试运行 MSDN 文章中的一些稍微修改过的代码。目标是使用颜色矩阵为图片框中的位图重新着色。这是我的代码:

        float[][] colorMatrixElements = { 
new float[] {rScale, 0, 0, 0},
new float[] {0, gScale, 0, 0},
new float[] {0, 0, bScale, 0},
new float[] {0, 0, 0, 1}};

ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);

其中 rScale、gScale 和 bScale 是值从 0.0f 到 1 的 float 。原始 MSDN 文章位于: https://msdn.microsoft.com/en-us/library/6tf7sa87%28v=vs.110%29.aspx

当它到达最后一行时,“ColorMatrix colorMatrix = new...”我的代码遇到运行时错误。在调试器中,我将 colorMatrixElements 作为 float[4][]。好像它不是一个 4x4 数组。我是不是在复制粘贴工作中搞砸了,或者我只是不了解 C# 如何处理二维数组?

感谢您的帮助。

最佳答案

根据您链接到的页面,您需要将一个5 x 5 数组传递给该构造函数。您正在传递一个 4 x 4 数组,因此您自然会得到一个 IndexOutOfBoundsException

尝试

    float[][] colorMatrixElements = { 
new float[] {rScale, 0, 0, 0, 0},
new float[] {0, gScale, 0, 0, 0},
new float[] {0, 0, bScale, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
};

ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);

关于C# ColorMatrix 索引越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com