public void CreateMaps()
{
var GridWidth = GridSizeX;
var GridHeight = GridSizeY;
int stride = GridWidth * 3 * 2;
byte[] bluegrid = new byte[GridHeight * stride];
for (int i = 0, j = 0; i < GridWidth * GridHeight; i++ , j+=6)
{
bluegrid[j] = (byte)(SelectedItem.BlueGrid[i] >> 8);
bluegrid[j + 1] = (byte)(SelectedItem.BlueGrid[i] >> 8);
bluegrid[j + 2] = (byte)(SelectedItem.BlueGrid[i] >> 8);
bluegrid[j + 3] = (byte)(SelectedItem.BlueGrid[i] & 255);
bluegrid[j + 4] = (byte)(SelectedItem.BlueGrid[i] & 255);
bluegrid[j + 5] = (byte)(SelectedItem.BlueGrid[i] & 255);
}
JetColorMapBlueGrid = BitmapSource.Create(
GridWidth,
GridHeight,
96.0,
96.0,
PixelFormats.Bgr24,
null,
bluegrid,
stride
);
}
这是我的功能,但它正在工作,我认为我正在裁剪我阵列的一部分 你能看一下将SelectedItem.BlueGrid []转换为 byte [] 的短数组,其大小为(GridSizeX,GridSizeY)的逻辑吗?