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
"
);
}
}
}
效果为
查看全文
相关阅读:
艾伟:一个让人遗忘的角落—Exception(二) 狼人:
艾伟:ASP.NET 2.0的编译模型 狼人:
艾伟:VS 2008快捷键 狼人:
艾伟:[一步一步MVC]第一回:使用ActionSelector控制Action的选择 狼人:
艾伟:C# Design Patterns (3) Decorator 狼人:
艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (下) 狼人:
艾伟:HTML重构:战略篇 狼人:
艾伟:WCF安全之EndPointIdentity 狼人:
翻转句子中单词的顺序
menucool
原文地址:https://www.cnblogs.com/gwazy/p/535871.html
最新文章
Java和ObjectiveC中字符编码及DES加密解密
基于dwr2.0的Push推送技术详细解析以及实例
文件加密的一种方法——如何使用Copy命令把文件和图片“复制”在一起
在读算法导论关于归并排序
Forest 1.0 一个分布式服务和数据分片的开源框架发布
JQery学习(5)事件(1)
hdu 2122 (prime 最小生成树)
科技企业:我们能为雅安做什么?
在centos7中添加一个新用户,并授权
CentOS搭建Git服务器及权限管理
热门文章
Linux 用户切换、修改用户名、修改密码
Centos下添加用户到用户组
Taglib自定义万能标签扩展 DownLoad
艾伟:用 C# 实现带键值的优先队列 狼人:
艾伟:C# Design Patterns (2) Strategy 狼人:
艾伟:C#类和接口、虚方法和抽象方法及值类型和引用类型的区别 狼人:
艾伟:C#3.0之自动属性和对象初始化器 狼人:
艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (上) 狼人:
艾伟:Chart Controls 简介与下载点 狼人:
艾伟:DynamicControl/DynamicField 例外的解决 狼人:
Copyright © 2011-2022 走看看