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
"
);
}
}
}
效果为
查看全文
相关阅读:
002梯度下降
001-线性回归
可视化库SEABORN基本操作2/2
可视化库Seaborn基本操作1/2
数据可视化库-Matplotlib基本操作
数据分析处理库-pandas
向量点乘(内积),叉乘(外积)
科学计算库Numpy基础操作
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call
ORM 模型
原文地址:https://www.cnblogs.com/gwazy/p/535871.html
最新文章
wmd距离
python文本和字节序列
使用tf-idf提取关键词并生成词云。
元组学习
自然语言处理——词典分词
学习TextRank算法
Hive基本知识介绍
内置序列类型
自然语言处理-----机器学习术语学习
排序算法大荟萃——希尔(Shell)排序算法
热门文章
排序算法大荟萃——冒泡排序算法
排序算法大荟萃——快速排序算法
图像处理书籍推荐
"exit"未定义标签 问题
Leetcode:Roman to Integer
debug assertion failed问题解决
数据结构与算法分析——抽象数据类型入门(2)
数据结构与算法分析——抽象数据类型入门(1)
通俗讲解傅里叶变换——转载
003-逻辑回归
Copyright © 2011-2022 走看看