我有一个byte[]代表图像的原始数据.我想把它转换为BitmapImage.
我尝试了几个我发现的例子但是我一直得到以下异常
"没有找到适合完成此操作的成像组件."
我认为这是因为我byte[]实际上并不代表图像而只是原始位.所以我的问题如上所述是如何将原始位的byte []转换为a BitmapImage.
我需要在WPF控件上显示实时图像.我正在寻找使用WPF执行此操作的最快方法.
我正在使用其DLL API(AVT)从相机捕获图像.
图像由dll写入,摄像机使用IntPtr将回调上升到名为tFrame的Image结构(如下所述).像素数据存储在ImageBuffer属性中,其中InPtr为字节数组.
我知道如何从像素字节数组创建一个位图,但不是BitmapImage.因此可以创建一个Bitmap,然后从中创建一个BitmapImagem. 这里有一种从内存上的位图创建BitmapImage的方法.但我想直接从数据源(tFrame)创建BitmapImage.我怎样才能做到这一点?
我知道BitmapImage有一个CopyPixels方法,但它有一个SetPixels.
public struct tFrame
{
public IntPtr AncillaryBuffer;
public uint AncillaryBufferSize;
public uint AncillarySize;
public tBayerPattern BayerPattern;
public uint BitDepth;
public tFrameCtx Context;
public tImageFormat Format;
public uint FrameCount;
public uint Height;
public IntPtr ImageBuffer;
public uint ImageBufferSize;
public uint ImageSize;
public uint RegionX;
public uint RegionY;
public tErr Status;
public uint TimestampHi;
public uint TimestampLo;
public uint Width;
}
Run Code Online (Sandbox Code Playgroud)
这是我如何从像素字节数组创建位图.这是在WinForm版本的软件中使用的.
private void CreateBitmap(tFrame frame)
{
//This …Run Code Online (Sandbox Code Playgroud)