繁体   English   中英

C#ColorMatrix索引超出界限

[英]C# ColorMatrix Index out of Bounds

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

        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.原始的MSDN文章在这里: https ://msdn.microsoft.com/en-us/library/6tf7sa87%28v=vs.110%29 。 ASPX

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

谢谢您的帮助。

根据您链接的页面,您需要将5乘5的数组传递给该构造函数。 你正在传递一个4乘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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM