作为学校项目的一部分,我试图从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。
到最后一行时,"ColorMatrix colorMatrix =new.“我的代码遇到了一个运行时错误。在调试器中,我将colorMatrixElements作为一个float4。好像它不是一个4x4数组。我是在复制粘贴工作中搞砸了什么,还是只是不明白C#是如何处理2D数组的?
谢谢你的帮助。
发布于 2015-12-04 10:51:15
根据链接到的页面,需要将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);https://stackoverflow.com/questions/34086492
复制相似问题