// flash : AxShockwaveFlashObjects.AxshockwaveFlash
flash.LoadMovie(0, @"H:\WorkProject\guoyue\0十大古曲\1春江花月夜.swf"); flash.Play(); for (int i = 0; i < flash.TotalFrames; i++) { flash.FrameNum = i; Application.DoEvents(); var bmp = GetimageOfControl(flash); bmp.Save("d:\\backup\\" + i + ".bmp"); }
private Bitmap GetimageOfControl(Control control) { //var w = control.Size.Width; //var h = control.Size.Height; var w = 1920; var h = 1080; Graphics gOfCtrl = control.CreateGraphics(); var bmp = new Bitmap(w, h, gOfCtrl); Graphics gOfBmp = Graphics.FromImage(bmp); IntPtr dc1 = gOfCtrl.GetHdc(); IntPtr dc2 = gOfBmp.GetHdc(); BitBlt(dc2, 0, 0, w, h, dc1, 0, 0, 13369376); gOfCtrl.ReleaseHdc(dc1); gOfBmp.ReleaseHdc(dc2); gOfCtrl.dispose(); gOfBmp.dispose(); return bmp; }
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")] private static extern bool BitBlt( IntPtr hdcDest,//目标设备的句柄 int nXDest,//目标对象的左上角x坐标 int nYDest,//目标对象的左上角Y坐标 int nWidth,//目标对象的矩形宽度 int nHeight,//目标对象的矩形长度 IntPtr hdcSrc,//源设备的句柄 int nXSrc,//源对象的左上角x坐标 int nYSrc,//源对象的左上角y坐标 system.int32 dwRop//光栅的操作值 );
这样处理后每张图片都是一片黑色的,不知哪里错了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。