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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 21:32   #1
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
Радость Помогите доделать программу работающую с Веб-Камерой

Здравствуйте!
Помогите, пожалуйста, доделать программку, работающую с Веб-Камерой с помощью DirectShow ! Я сделал только проигрование файлов, а надо захват с камеры, и получение доступа к отдельным пикселям !
Вот мои нароботки
Код:
unit Kamera;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ActiveX,DirectShow9, StdCtrls, ComObj, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Button2: TButton;
    Panel1: TPanel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyGraphBuilder: IGraphBuilder = nil;
MyMediaControl: IMediaControl = nil;
MyMediaEvent : IMediaEvent = nil;
 VideoWindow: IVideoWindow;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
CoInitialize(nil);
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder,MyGraphBuilder);

MyGraphBuilder.QueryInterface(IID_IMediaControl, MyMediaControl);
MyGraphBuilder.QueryInterface(IID_IMediaEvent, MyMediaEvent);

MyGraphBuilder.RenderFile(StringToOleStr(OpenDialog1.FileName), '');

MyMediaControl.Run;

CoUninitialize;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Execute();
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 CoInitialize(nil);
  {получаем интерфейс IGraphBuilder}
  CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,
    IID_IGraphBuilder, MyGraphBuilder);


  MyGraphBuilder.RenderFile(StringToOleStr(OpenDialog1.FileName), nil);

  
  MyGraphBuilder.QueryInterface(IID_IMediaControl, MyMediaControl);
  MyGraphBuilder.QueryInterface(IID_IVideoWindow, VideoWindow);




  MyMediaControl.Run;

  CoUninitialize;

end;



end.
Пожалуйста!
P.S. И еще - объясните, пожалуйста, какой метод правильнее 1 или 2? И в чем разница выделенных красным участков?

Последний раз редактировалось Levsha100; 17.04.2009 в 21:36.
Levsha100 вне форума Ответить с цитированием
Старый 22.04.2009, 18:43   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Пожалуйста, кому несложно, помогите !
Levsha100 вне форума Ответить с цитированием
Старый 23.04.2009, 17:49   #3
Брахман
 
Регистрация: 23.04.2009
Сообщений: 7
По умолчанию

насколько я понял,тебе нужно считать изображение с камеры.это сложновато,явно обычным компонентом DelphiX тут не обойдешься.Качество плохое будет.Может поговорить с разработчиками skype?
Брахман вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно написать программу работающую с LPT liub_ser Фриланс 4 21.02.2009 12:06
помогите доделать рекурсивную программу ELdarr Общие вопросы C/C++ 0 23.01.2009 23:14
Работа с текстовым файлом (delphi). Помогите доделать программу. Snord Помощь студентам 1 14.12.2007 14:10