Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить картинку с камеры, С помощью ТВ-тюнера 
:(
    Опции темы
eldorado
  Дата 28.10.2004, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 2.7.2004

Репутация: нет
Всего: нет



Помогите советом.
Нужно получить картинку (фото, не видео) с аналоговой камеры. Как это сделать? Имеется ТВ-тюнер. Через него можно?
А вообще мне 2 камеры подключить надо и работать с ними одновременно, нужен ещё ТВ-тюнер?
PM MAIL WWW   Вверх
eldorado
Дата 30.10.2004, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 2.7.2004

Репутация: нет
Всего: нет



Код
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Panel1: TPanel;
   OpenVideo: TButton;
   CloseVideo: TButton;
   GrabFrame: TButton;
   SaveBMP: TButton;
   StartAVI: TButton;
   StopAVI: TButton;
   SaveDialog1: TSaveDialog;
   procedure FormCreate(Sender: TObject);
   procedure OpenVideoClick(Sender: TObject);
   procedure CloseVideoClick(Sender: TObject);
   procedure GrabFrameClick(Sender: TObject);
   procedure SaveBMPClick(Sender: TObject);
   procedure StartAVIClick(Sender: TObject);
   procedure StopAVIClick(Sender: TObject);
 private
   { Private declarations }
   hWndC : THandle;
   CapturingAVI : bool;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

const WM_CAP_START                  = WM_USER;
const WM_CAP_STOP                   = WM_CAP_START + 68;
const WM_CAP_DRIVER_CONNECT         = WM_CAP_START + 10;
const WM_CAP_DRIVER_DISCONNECT      = WM_CAP_START + 11;
const WM_CAP_SAVEDIB                = WM_CAP_START + 25;
const WM_CAP_GRAB_FRAME             = WM_CAP_START + 60;
const WM_CAP_SEQUENCE               = WM_CAP_START + 62;
const 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';

procedure TForm1.FormCreate(Sender: TObject);
begin
 CapturingAVI := false;
 hWndC := 0;
 SaveDialog1.Options :=
   [ofHideReadOnly, ofNoChangeDir, ofPathMustExist]
end;

procedure TForm1.OpenVideoClick(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA('My Own Capture Window',
                                  WS_CHILD or WS_VISIBLE ,
                                  Panel1.Left,
                                  Panel1.Top,
                                  Panel1.Width,
                                  Panel1.Height,
                                  Form1.Handle,
                                  0);
 if hWndC <> 0 then
   SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
end;

procedure TForm1.CloseVideoClick(Sender: TObject);
begin
 if hWndC <> 0 then begin
   SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
  hWndC := 0;
  end;
end;

procedure TForm1.GrabFrameClick(Sender: TObject);
begin
 if hWndC <> 0 then
   SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;

procedure TForm1.SaveBMPClick(Sender: TObject);
begin
 if hWndC <> 0 then begin
   SaveDialog1.DefaultExt := 'bmp';
   SaveDialog1.Filter := 'Bitmap files (*.bmp)|*.bmp';
   if SaveDialog1.Execute then
     SendMessage(hWndC,
                 WM_CAP_SAVEDIB,
                 0,
                 longint(pchar(SaveDialog1.FileName)));
 end;
end;

procedure TForm1.StartAVIClick(Sender: TObject);
begin
 if hWndC <> 0 then begin
   SaveDialog1.DefaultExt := 'avi';
   SaveDialog1.Filter := 'AVI files (*.avi)|*.avi';
   if SaveDialog1.Execute then begin
      CapturingAVI := true;
      SendMessage(hWndC,
                  WM_CAP_FILE_SET_CAPTURE_FILEA,
                  0,
                  Longint(pchar(SaveDialog1.FileName)));
      SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
   end;
 end;
end;

procedure TForm1.StopAVIClick(Sender: TObject);
begin
 if hWndC <> 0 then begin
   SendMessage(hWndC, WM_CAP_STOP, 0, 0);
   CapturingAVI := false;
 end;
end;

end.

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.