这看起来像是一个重复的问题,但是没有人回答实际的问题。
这里是: 基本上,我将ViewPort3D渲染为代码中的2D快照,但需要转换该类型 将RenderTargetBitmap放入System.Drawing.BitMap类型(用于2D侧的进一步处理)。
Dim bmpRen As New RenderTargetBitmap(1024, 550, 96, 96, PixelFormats.Pbgra32)
bmpRen.Render(Me.vp3dTiles) 'render the viewport as 2D snapshot
虽然我知道如何将其保存到文件中,但我宁愿跳过该步骤并将bmpRen转换为System.Drawing.Bitmap类型,但是没有方法可以这样做。
答案 0 :(得分:15)
RenderedTargetBitmap
是BitmapSource
,因此BmpBitmapEncoder
可以为我们进行转换:
这是在C#中,但它应该转换为VB而没有任何问题。
RenderTargetBitmap bmpRen = new RenderTargetBitmap(1024, 550, 96, 96, PixelFormats.Pbgra32);
bmpRen.Render(vp3dTiles);
MemoryStream stream = new MemoryStream();
BitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmpRen));
encoder.Save(stream);
Bitmap bitmap = new Bitmap(stream);