Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2011, 12:17   #1
Denutrror
Пользователь
 
Регистрация: 18.08.2010
Сообщений: 59
Вопрос Плучить изоброжение с веб камеры.

Нашёл на форуме вот такой исходник.



Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const WM_CAP_START = WM_USER;
WM_CAP_STOP = WM_CAP_START + 68;
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
WM_CAP_SAVEDIB = WM_CAP_START + 25;
WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
WM_CAP_SEQUENCE = WM_CAP_START + 62;
WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;

function capCreateCaptureWindowA(lpszWindowName : PCHAR;
dwStyle : longint;
x : integer;
y : integer;
nWidth : integer;
nHeight : integer;
ParentWin : HWND;
nId : integer): HWND;
stdcall external 'AVICAP32.DLL';
var
  Form1: TForm1;

implementation
{$R *.dfm}


var hWndC : THandle;

procedure TForm1.Button1Click(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE ,
0,
0,
Panel1.Width,
Panel1.Height,
Panel1.Handle,
0); //создаем область для вывода получаемых в будущем картинок =)

if hWndC <> 0 then //если при создании области ошибок не возникло, то сопкойно начинаем забирать данный с веб-камеры
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);  //забираем картинку с вебкамеры

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  hWndC := 0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if hWndC <> 0 then
  begin
    SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);  //"отключаемся" от веб-камеры
    hWndC := 0;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if hWndC <> 0 then SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0); //забираем картинку с вебкамеры
end;


end.

Вопрос: как из hWndC "достать" картинку и вставить её в Image ?
Denutrror вне форума Ответить с цитированием
Старый 09.10.2011, 18:37   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

подставь хэндл image.picture.bitmap.canvas.handle ...только зачем, выводи сразу на panel.handle/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.10.2011, 19:38   #3
Denutrror
Пользователь
 
Регистрация: 18.08.2010
Сообщений: 59
Сообщение

Сделал так:

Код:
  
var
bmp: Tbitmap;
 DC: HDC;
 Canvas: TCanvas;


procedure TForm1.Button4Click(Sender: TObject);
begin

DC := GetDC(HWnDC);
    Bmp := TBitmap.Create;
    Bmp.PixelFormat:=pf16bit;
    bmp.Width:= Panel1.Width;
    Bmp.Height:= Panel1.Height;

    Canvas.Create;
    Canvas.Handle := DC;
    Bmp.Canvas.CopyRect(Screen.DesktopRect, Canvas, Screen.DesktopRect); 
    image1.Picture.Bitmap.Assign(bmp);
end;

Последний раз редактировалось Denutrror; 09.10.2011 в 19:51.
Denutrror вне форума Ответить с цитированием
Старый 10.10.2011, 13:32   #4
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

для работы с медиа-файлами есть пакет DSPack. В набор пакета входят различные компоненты для захвата и отображения изображения с камеры. Применял его для написания диплома....
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Захват видео с веб камеры maks5 Общие вопросы Delphi 0 08.10.2011 15:22
Выбор веб-камеры Hudishka Компьютерное железо 7 13.01.2011 10:25
Трансляция веб-камеры LevonNikox JavaScript, Ajax 2 29.10.2010 12:58
Захват видео с веб-камеры alexprey Мультимедиа в Delphi 8 09.07.2010 15:28