在QT + AE编程时碰到个问题,有一个API,原形为:
- virtual HRESULT __stdcall get_PixelData ( long plane, VARIANT * pVal ) = 0
通过该函数可以正确的取得val值,但它是个二维数组。在QT中我是这样调用的,可以取出值,但是不知如何把varPixel转为数组。
- _variant_t varPixels;
- hr = ipPixelBlock3->get_PixelData(0,&varPixels);
以下是C#代码取VARIANT类型数据的方法,可供参考:
- //Populate some pixel values to the pixel block.
- System.Array pixels;
- pixels = (System.Array)pixelblock.get_PixelData(0);
- for (int i = 0; i < width; i++)
- for (int j = 0; j < height; j++)
- if (i == j)
- pixels.SetValue(Convert.ToByte(255), i, j);
- else
- pixels.SetValue(Convert.ToByte((i * j) / 255), i, j);
- pixelblock.set_PixelData(0, (System.Array)pixels);
请高手指点一二,谢谢。