2010-01-06 1 views

ответ

11

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

из nikon сайта:

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

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

До свидания.

+0

Спасибо, я DONWLOAD SDK , Но я ищу более простой способ. На данный момент я смотрю «Windows Image Acquisition». –

+0

Поскольку я не получаю решение WIA, я более глубоко смотрю на SDK. Существует ли оболочка delphi для SDK? –

8

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

  1. Выберите "Project> Import Type Library" из меню
  2. Select "" Microsoft Windows Image Acquisition 1,01 Type Library»из списка
  3. Выберите„Создать блок“
  4. Вам будет получить единицу„WIALib_TLB.pas“

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

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

К сожалению, комментарии на немецком языке, но я думаю, что код легко понять

+0

Спасибо, я скомпилировал ваш источник. Я получаю свойства камеры, я могу передавать фотографии с камеры, но после вызова TakePicture изображение не возвращается (камеры: Canon Powershout 520, Nikon D5000). Другие программы WIA имеют те же проблемы. Есть идеи? –

+3

TakePicture предназначен для веб-камер, то есть для камер, где изображение камеры передается на компьютер в реальном времени. TakePicture означает получение моментального снимка только в тот момент, когда вы вызываете метод. Большинство обычных цифровых камер, которые не являются веб-камерами, не позволяют делать снимки, когда камера подключена к компьютеру. Вы можете получить доступ только к изображениям, которые уже хранятся на камере. – NineBerry

+1

Похоже, что спрашивающий должен иметь возможность запускать снимки с камеры. – Luke

1
  • вы можете использовать WIA (окна захвата изображений)
  • из меню компонента выберите компонент импорта и выберите окно изображения Получение и установка
  • или download и добавить в ваш проект
  • затем
  • , если вы будете использовать 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

 Смежные вопросы

  • Нет связанных вопросов^_^