Mic*_*cah 5 c# arrays indexoutofboundsexception
我正在尝试从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);
Run Code Online (Sandbox Code Playgroud)
其中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 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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |