首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ColorMatrix指数出界

C# ColorMatrix指数出界
EN

Stack Overflow用户
提问于 2015-12-04 10:45:02
回答 1查看 70关注 0票数 5

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

代码语言:javascript
复制
        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。

到最后一行时,"ColorMatrix colorMatrix =new.“我的代码遇到了一个运行时错误。在调试器中,我将colorMatrixElements作为一个float4。好像它不是一个4x4数组。我是在复制粘贴工作中搞砸了什么,还是只是不明白C#是如何处理2D数组的?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 10:51:15

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

试一试

代码语言:javascript
复制
    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);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34086492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档