Visual C# 2010을 사용하여 Windows Kinect에서받은 프레임에서 .avi 파일을 작성하려고합니다. 프레임은 BitmapEncoder 및 PngBitmapEncoder (스트림에 저장)를 사용하여 .png 파일로 충분히 쉽게 저장할 수 있지만 여기에 제공된 VideoStream에 임의로 이러한 이미지를 추가 할 수는 없습니다 : http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-Library RenderTargetBitmap 또는 DrawingVisual을 System.Drawing.Bitmap으로 변환 할 수 있습니다.DrawingVisual을 비트 맵으로 변환하려면 어떻게해야합니까?
비슷한 일을하는 예제 코드를 찾았지만 모두 Visual Studio에서 추상이라고 알려주고 인스턴스화 할 수없는 Image 클래스를 인스턴스화하려고합니다.
저는 서클에서 돌아가고 어디에도 가지 않을 것입니다.
...
renderBitmap.Render(dv);
Bitmap bmp=new Bitmap(dv);
VideoStream aviStream=aviManager.AddVideoStream(true,60,bmp);
...
을하지만 비트 맵 DV BMP로 (으로 DrawingVisual)에서 저를 얻기 위해 유용한 생성자가 없습니다 :
난 그냥 이런 식으로 뭔가를 할 수 있습니다. :(
그 3 개 라인이 조각에서 온 :
이var renderBitmap=new RenderTargetBitmap(colorWidth,colorHeight,96.0,96.0,PixelFormats.Pbgra32);
DrawingVisual dv=new DrawingVisual();
using(DrawingContext dc=dv.RenderOpen())
{
VisualBrush backdropBrush=new VisualBrush(Backdrop);
dc.DrawRectangle(backdropBrush,null,new Rect(0,0,colorWidth,colorHeight));
VisualBrush colorBrush=new VisualBrush(MaskedColor);
dc.DrawRectangle(colorBrush,null,new Rect(0,0,colorWidth,colorHeight));
VisualBrush watermarkBrush=new VisualBrush(Watermark);
dc.DrawRectangle(watermarkBrush,null,new Rect(colorWidth-96,colorHeight-80,64,48));
}
renderBitmap.Render(dv);
Bitmap bmp=new Bitmap(dv);
VideoStream aviStream=aviManager.AddVideoStream(true,60,bmp);
을 반환하는 방법을 만들었습니다. "dv"는 어디에서 왔습니까? 그 유형은 무엇입니까? – JcMaltaDev
코드 릿킷을 확장하여 진행 상황을보다 잘 이해할 수있게되었습니다. –