Программа Delphi должна делать фотографии с Nikon D5000AF SDX. Единственные команды, которые мне нужны, это «сделать фото», «получить мне фотографию».Как управлять камерой с помощью Delphi
Какая библиотека или API могут мне помочь?
Программа Delphi должна делать фотографии с Nikon D5000AF SDX. Единственные команды, которые мне нужны, это «сделать фото», «получить мне фотографию».Как управлять камерой с помощью Delphi
Какая библиотека или API могут мне помочь?
@Heinz, для управления устройством вы должны использовать SDK, который должен поставляться изготовителем устройства.
из nikon сайта:
.... Мы предлагаем библиотеки программ и Command API спецификации для программных приложений, которые предлагают функции дистанционного управления для Nikon цифровых зеркальных фотокамер, подключенных к компьютер. Когда они используются, программное приложение может использоваться для изменения настроек камеры, включая выдержки затвора, диафрагмы и ISO , а также для управления камерой операций, в том числе спуска затвора.
на странице this вы можете найти SDK для камер Nikon, включая серии D5000.
До свидания.
Я бы посоветовал использовать API WIA (Windows Image Acquisition). Для этого вам нужен файл "WIALib_TLB.pas", который будет создан на Delphi автоматически, выполнив следующие действия:
Используйте код из следующего URL, чтобы увидеть, как вы можете перечислить безрезультатно способных устройств и их свойств, и сделать снимок с камерой.
http://www.neunbeere.de/UseNet/WIA.html
К сожалению, комментарии на немецком языке, но я думаю, что код легко понять
Спасибо, я скомпилировал ваш источник. Я получаю свойства камеры, я могу передавать фотографии с камеры, но после вызова TakePicture изображение не возвращается (камеры: Canon Powershout 520, Nikon D5000). Другие программы WIA имеют те же проблемы. Есть идеи? –
TakePicture предназначен для веб-камер, то есть для камер, где изображение камеры передается на компьютер в реальном времени. TakePicture означает получение моментального снимка только в тот момент, когда вы вызываете метод. Большинство обычных цифровых камер, которые не являются веб-камерами, не позволяют делать снимки, когда камера подключена к компьютеру. Вы можете получить доступ только к изображениям, которые уже хранятся на камере. – NineBerry
Похоже, что спрашивающий должен иметь возможность запускать снимки с камеры. – Luke
треска:
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
Спасибо, я DONWLOAD SDK , Но я ищу более простой способ. На данный момент я смотрю «Windows Image Acquisition». –
Поскольку я не получаю решение WIA, я более глубоко смотрю на SDK. Существует ли оболочка delphi для SDK? –