Как управлять камерой с помощью Delphi - PullRequest
3 голосов
/ 06 января 2010

Программа Delphi должна делать фотографии продуктов с помощью Nikon D5000AF SDX. Единственные команды, которые мне нужны, это «сделать фотографию», «дай мне фотографию».

Какая библиотека или API могут мне помочь?

Ответы [ 3 ]

11 голосов
/ 06 января 2010

@ Heinz, для управления устройством необходимо использовать SDK, который должен быть предоставлен производителем устройства.

с сайта nikon :

.... Мы предлагаем библиотечные программы и Command API Спецификации для программные приложения, которые предлагают функции дистанционного управления для Nikon цифровые зеркальные камеры подключены к компьютер. Когда они используются, программное приложение может быть использовано для изменить настройки камеры, в том числе выдержка, диафрагма и ISO чувствительность, и для управления камерой операции, включая спуск затвора.

на этой странице вы можете найти SDK для камер Nikon, включая серии D5000.

Bye.

8 голосов
/ 06 января 2010

Я бы посоветовал использовать API WIA (Windows Image Acquisition). Для этого вам понадобится файл "WIALib_TLB.pas", который будет создан Delphi автоматически при выполнении следующих действий:

  1. Выберите «Проект> Импортировать библиотеку типов» из меню
  2. Выберите "" Библиотека типов Microsoft Windows Image Acquisition 1.01 "из списка
  3. Выберите «Создать юнит»
  4. Затем вы получите модуль "WIALib_TLB.pas"

Используйте код из следующего URL, чтобы увидеть, как можно перечислить доступные устройства и их свойства и сделать снимок с камеры.

http://www.neunbeere.de/UseNet/WIA.html

Извините, комментарии на немецком, но я думаю, что код легко понять

1 голос
/ 09 мая 2012
  • Вы можете использовать wia (получение изображений Windows)
  • в меню компонентов выберите компонент импорта и выберите изображение Windows приобретение и установка
  • или скачайте и добавьте в свой проект
  • 1010 * тогда *
  • если вы используете win xp
  • начать новый проект и поставить
  • новая кнопка с именем Button1
  • новый CheckBox с именем MultiPic
  • и скопируйте треску и прошлое в Button1

треска:

procedure TForm1.Button1Click(Sender: TObject);
var
   wia:IWia;
   WiaInf: IWiaDeviceInfo;
   wiaImg: IWiaDispatchItem;
   I:integer;
   Coll: ICollection;
begin
  wia:=CoWia.Create;
  WiaInf:= WIA.Devices.Item[0] as IWiaDeviceInfo;
  wiaImg:=WiaInf.Create;
  if MultiPic.Checked then
  begin
    coll:=wiaImg.GetItemsFromUI(UseCommonUI, MaximizeQuality);
    for I := 0 to coll.Count - 1 do
      begin
        wiaImg:=coll.Item[i]  as IWiaDispatchItem ;
        wiaImg.Transfer('C:\Source\test'+inttostr(i)+'.bmp',false);
      end;
  end
  else
  begin
    wiaImg:=wiaImg.GetItemsFromUI(SingleImage, MaximizeQuality).Item[0]  as IWiaDispatchItem ;
    wiaImg.Transfer('C:\Source\test.bmp',false);
  end;
end;
  • Я использую CheckBox для пользователя. Определите, хочет ли он 1 изображение или несколько фотографии

  • Вы можете загрузить изображение / с в изображение по loadfromfile

...