用mediaplay实现抓图

原创 2002年05月14日 09:24:00
关键字     

小弟前段时间曾做过保证要公开该问题的code(vc,bcb,dephi),刚开始小弟用拷屏的方法可抓下来总是黑呼呼的一片,后来在几位大虾的提示下用vc+directshow实现那该功能。

可这样一来,就必须用directshow来实现播放与初衷不合.从此我就钻进那死胡同,总是想将

directshow与activemove组件,directshow与mediaplay组件结合起来,利用IBasicVideo Interface来达到目标。可读遍那与此相关的directsdk的头文件,都没有找那结合的办法(那位大虾实现那,请指点小弟,小弟先谢那!)。一直苦无进展,市面上有关的书都翻遍那。无用!(可见那些所谓的“高级编程技巧”都是狗屁,难度大一点的问题都回避,全是乱抄,tmd骗子),有一天小弟重读The IBasicVideo interface supports the video properties of a generic video window. Generally, this is a video renderer that draws video into a window on the display. (msdn),忽然记起在读dephihelp是有一段相似

TPaintBox provides a canvas that applications can use for rendering an image.(dephihelp)遂想用paintbox可能可以,try->success,code如下:

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, MPlayer, ExtCtrls, StdCtrls, Menus;

 

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    filw1: TMenuItem;

    open1: TMenuItem;

    close1: TMenuItem;

    Button1: TButton;

    OpenDialog1: TOpenDialog;

    PaintBox1: TPaintBox;

    MediaPlayer1: TMediaPlayer;

    procedure FormCreate(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure PaintBox1Paint(Sender: TObject);

    procedure open1Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

  imgbitmap:TBitmap;

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

begin

   imgbitmap:=TBitmap.Create;

   imgbitmap.Height:=200;

   imgbitmap.Width:=200;

   imgbitmap.Canvas.Rectangle(0,0,200,200);

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

imgbitmap.Free;

end;

 

procedure TForm1.PaintBox1Paint(Sender: TObject);

begin

PaintBox1.Canvas.CopyRect(Rect(0,0,200,200),imgbitmap.Canvas,Rect(0,0,200,200));

end;

 

procedure TForm1.open1Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

MediaPlayer1.FileName:=OpenDialog1.FileName;

MediaPlayer1.Open;

MediaPlayer1.Display:=Form1;

MediaPlayer1.DisplayRect:=Rect(10,10,200,200);

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

imgbitmap.Canvas.CopyRect(Rect(0,0,200,200),form1.Canvas,Rect(10,10,200,200));

PaintBox1.Invalidate;

imgbitmap.SaveToFile('d://1234567.bmp');

end;

 

end.

test环境win2000+dephi6.0

至于改bcb的code相信大家一目了然,我就不改那!,vc的code要的话,我过段时间公开!

还是《程序设计实践》上说的好“尽量用简单的方法解决问题".

另外小弟这段时间在写个“网吧定时炸弹”。设计主要功能是定时炸毁网吧所有机器的硬盘(定时功能是指由使用者指定发作时间)

所谓炸毁学的是泽民炸弹的做法,不过win9x,win2000,winxp都发作罢了。计划鬼门开的那天公开code,请到时候关注.

流浪的小狗没有一个家呀,没有一个家!

   

Python 3.4 简单的抓图脚本

初学 Python ,写了简单的小脚本import urllib.request import os# 未写 def proxy_open(): # 安装代理 步骤 # 1. 选择代理...
  • bkxiaoc
  • bkxiaoc
  • 2015年08月27日 13:42
  • 2107

用VC实现抓图功能

引用 ViseLo 的 用VC实现抓图功能 函数1: CopyScreenToBitmap //将屏幕指定区域存成图片HBITMAP CxxxDlg::CopyScreenToBitmap(LPR...
  • haibianfeng
  • haibianfeng
  • 2014年01月26日 20:34
  • 268

Python爬虫之路——简单的网页抓图

用Python的urllib2库和HTMLParser库写了一个简单的抓图脚本,主要抓的是http://desk.zol.com.cn/meinv/这个链接下的图片,通过得到图集的起始URL地址,得到...
  • txg703003659
  • txg703003659
  • 2014年06月13日 09:54
  • 59597

自己写的Java抓图程序

公司里要写一个抓图的程序其实和搜索引擎差不多的原理 下载分析网页遇到标签继续模拟点击进去再分析该网页 遇到就下载该图难点:1 URL去重 采用bloomfilter算法2 序列化方式存储URL库3 线...
  • binyao02123202
  • binyao02123202
  • 2010年07月12日 14:07
  • 2164

Service的实现

既然是音乐播放器就自然免不了MediaPlayer了,MediaPlayer原生的方法就有好几个常用的: MediaPlayer.reset();重置播放器数据 MediaPlayer.se...
  • lin810921141
  • lin810921141
  • 2015年04月30日 17:31
  • 501

保存抓图的简单实现

实现类似的抓屏功能(简单的截图功能)其实只要两个函数就行了,以下从网上摘抄的一段代码的改写, 算是原创吧(http://www.wenyiwen.cn/a24/how161448.htm):函数1: ...
  • seu07201213
  • seu07201213
  • 2006年07月16日 19:24
  • 8156

用Visual C++实现屏幕抓图程序

在Windows操作系统中,当用户按下"PrintScreen"按钮后,Windows自动将当前屏幕的图像拷贝到系统剪贴板中,这时可以通过"画笔"这个小程序将剪贴板中的内容保存成图像文件,可以看出,如...
  • fxpopboy
  • fxpopboy
  • 2007年01月02日 19:10
  • 498

用silverlight设计MediaPlay控件

来源:it168  大家都知道silverlight里用了获得艾美奖的新的视频编解码技术。视频质量无论从移动设备还是桌面浏览器都可以达到720p HDTV video模式。如果能用silverligh...
  • tongdoudpj
  • tongdoudpj
  • 2007年12月07日 10:01
  • 684

Python系列之五_爬虫抓图

Python系列之五_爬虫抓图
  • hanhf
  • hanhf
  • 2017年03月04日 07:09
  • 1132

用directshow 实现抓图遇到的问题

下面红色的一段是我按照Directshow开发指南敲下来的一个抓图函数SnapshotBitmap( IBasicVideo * BasicVideo, const char * OutFile){ ...
  • noendless
  • noendless
  • 2006年06月09日 23:35
  • 1361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用mediaplay实现抓图
举报原因:
原因补充:

(最多只允许输入30个字)