zoukankan
html css js c++ java
视频播放时抓图
using
System ;
using
System.Drawing ;
using
System.Collections ;
using
System.ComponentModel ;
using
System.Windows.Forms ;
using
System.Data ;
using
Microsoft.DirectX.AudioVideoPlayback ;
using
System.IO;
using
System.Threading;
using
System.Runtime.InteropServices;
using
System.Drawing.Imaging;
using
DexterLib;
namespace
abc
{
/**/
///
<summary>
///
Form2 的摘要说明。
///
</summary>
public
class
Form2 : System.Windows.Forms.Form
{
private
System.Windows.Forms.Panel panel1;
private
System.Windows.Forms.Button button1;
private
System.Windows.Forms.Button button2;
private
System.Windows.Forms.OpenFileDialog openFileDialog1;
private
Video MyVideo
=
null
;
private
System.Windows.Forms.Timer timer1;
private
System.Windows.Forms.Label label1;
private
System.ComponentModel.IContainer components;
public
Form2()
{
//
//
Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
//
TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**/
///
<summary>
///
清理所有正在使用的资源。
///
</summary>
protected
override
void
Dispose(
bool
disposing )
{
if
( disposing )
{
if
(components
!=
null
)
{
components.Dispose();
}
}
base
.Dispose( disposing );
}
Windows 窗体设计器生成的代码
#region
Windows 窗体设计器生成的代码
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.components
=
new
System.ComponentModel.Container();
this
.panel1
=
new
System.Windows.Forms.Panel();
this
.button1
=
new
System.Windows.Forms.Button();
this
.button2
=
new
System.Windows.Forms.Button();
this
.openFileDialog1
=
new
System.Windows.Forms.OpenFileDialog();
this
.timer1
=
new
System.Windows.Forms.Timer(
this
.components);
this
.label1
=
new
System.Windows.Forms.Label();
this
.SuspendLayout();
//
//
panel1
//
this
.panel1.Dock
=
System.Windows.Forms.DockStyle.Top;
this
.panel1.Location
=
new
System.Drawing.Point(
0
,
0
);
this
.panel1.Name
=
"
panel1
"
;
this
.panel1.Size
=
new
System.Drawing.Size(
292
,
176
);
this
.panel1.TabIndex
=
0
;
//
//
button1
//
this
.button1.Location
=
new
System.Drawing.Point(
32
,
216
);
this
.button1.Name
=
"
button1
"
;
this
.button1.TabIndex
=
1
;
this
.button1.Text
=
"
打开
"
;
this
.button1.Click
+=
new
System.EventHandler(
this
.button1_Click);
//
//
button2
//
this
.button2.Location
=
new
System.Drawing.Point(
120
,
216
);
this
.button2.Name
=
"
button2
"
;
this
.button2.TabIndex
=
2
;
this
.button2.Text
=
"
抓图
"
;
this
.button2.Click
+=
new
System.EventHandler(
this
.button2_Click);
//
//
openFileDialog1
//
this
.openFileDialog1.FileOk
+=
new
System.ComponentModel.CancelEventHandler(
this
.openFileDialog1_FileOk);
//
//
timer1
//
this
.timer1.Enabled
=
true
;
this
.timer1.Interval
=
1000
;
this
.timer1.Tick
+=
new
System.EventHandler(
this
.timer1_Tick);
//
//
label1
//
this
.label1.Location
=
new
System.Drawing.Point(
216
,
216
);
this
.label1.Name
=
"
label1
"
;
this
.label1.Size
=
new
System.Drawing.Size(
72
,
23
);
this
.label1.TabIndex
=
3
;
this
.label1.Text
=
"
label1
"
;
//
//
Form2
//
this
.AutoScaleBaseSize
=
new
System.Drawing.Size(
6
,
14
);
this
.ClientSize
=
new
System.Drawing.Size(
292
,
273
);
this
.Controls.Add(
this
.label1);
this
.Controls.Add(
this
.button2);
this
.Controls.Add(
this
.button1);
this
.Controls.Add(
this
.panel1);
this
.Name
=
"
Form2
"
;
this
.Text
=
"
Form2
"
;
this
.ResumeLayout(
false
);
}
#endregion
private
void
button1_Click(
object
sender, System.EventArgs e)
{
int
height
=
panel1.Height ;
int
width
=
panel1.Width ;
openFileDialog1.InitialDirectory
=
Application.StartupPath ;
if
(
this
.openFileDialog1 .ShowDialog()
==
DialogResult.OK)
{
if
( MyVideo
!=
null
)
{
MyVideo.Dispose ( ) ;
}
MyVideo
=
new
Video ( openFileDialog1.FileName ) ;
MyVideo.Owner
=
panel1 ;
panel1.Width
=
width ;
panel1.Height
=
height ;
MyVideo.Play();
}
}
private
void
timer1_Tick(
object
sender, System.EventArgs e)
{
if
(MyVideo
!=
null
)
{
this
.label1 .Text
=
MyVideo.CurrentPosition.ToString ();
}
}
private
void
openFileDialog1_FileOk(
object
sender, System.ComponentModel.CancelEventArgs e)
{
}
private
void
button2_Click(
object
sender, System.EventArgs e)
{
this
.Scan(MyVideo.CurrentPosition ,
this
.openFileDialog1.FileName );
}
void
Scan(
double
tempid ,
string
filename)
{ MediaDetClass md;
md
=
new
MediaDetClass();
Image img;
md.Filename
=
filename;
string
fBitmapName
=
System.DateTime.Now.ToString (
"
yyyyMMddhhmmss
"
);
md.WriteBitmapBits( tempid,
320
,
240
, fBitmapName
+
"
.bmp
"
);
img
=
Image.FromFile( fBitmapName
+
"
.bmp
"
);
img.Save( fBitmapName
+
"
.jpg
"
, ImageFormat.Jpeg );
img.Dispose();
System.IO.File.Delete( fBitmapName
+
"
.bmp
"
);
}
}
}
效果为
查看全文
相关阅读:
几种比较和谐的文字背景颜色搭配
C#中读取pdm文件信息(PowerDesigner读取方法)(源码共享)
WinForm应用程序框架设计之WinAction(新增数据)
iBatis.NET在使用浮点类型时报错
Vortex2D.NET在ScreenManager前创建节点会出错。
WinForm应用程序框架设计之WinAction(数据操作)
WinForm应用程序框架设计之WinAction(一:显示列表窗体)
WinForm应用程序框架设计之WinAction(介绍)
点击其他checkbox,然后显示和隐藏区域
11PX中文字体,清晰
原文地址:https://www.cnblogs.com/gwazy/p/535871.html
最新文章
JS日期选择器
ExtJS4 学习笔记1
MSDN给出的HttpClient使用示例
Swing JTree的示例
C#生成随机字符串
ljee一句话 解开很久的问题thanks!
我的社区活动经历2012年9月止 made by titer1
再论Tcp Udp 发送、接收 0字节问题
关于中断和异常的几点认识
我的发帖小结 csdn by titer1 2012年9月截止
热门文章
笔试题 遗忘点记录 面向对象特点 + 产生死锁条件+ windows内存管理方法
所有的博客
设计模式二三话10月份
【方法论】用坐标系思考问题
OGC之路(2) 之 Style之谜
动态类型与PropertyGrid
一起来列出GIS学习和开发的在线资源,我先起个头
OGC之路(1.5) 之 GIS开源工具及其应用
WinForm应用程序框架设计之WinAction(修改数据)
WinForm应用程序框架设计之WinAction(删除数据)
Copyright © 2011-2022 走看看