如何用Delphi控制相机

时间:2010-01-06 11:43:17

标签: delphi api sdk camera

Delphi程序应使用尼康D5000AF SDX拍摄产品照片。我需要的唯一命令是“拍照”,“把照片拿给我”。

哪个库或API可以帮助我?

3 个答案:

答案 0 :(得分:11)

@Heinz,要控制必须使用SDK的设备,必须由设备制造商提供。

来自nikon网站:

  

....我们正在提供图书馆计划   和命令API规范   提供的软件应用程序   尼康的遥控功能   数码单反相机连接到   电脑。当这些被利用时,   软件应用程序可用于   修改相机设置,包括   快门速度,光圈和ISO   灵敏度,并控制相机   操作,包括快门释放。

this页面中,您可以找到适用于尼康相机的SDK,包括D5000系列。

再见。

答案 1 :(得分:8)

我建议使用WIA(Windows Image Acquisition)API。为此,您需要文件“WIALib_TLB.pas”,这将由Delphi在执行以下步骤时自动创建:

  1. 从菜单
  2. 中选择“项目>导入类型库”
  3. 从列表中选择“”Microsoft Windows Image Acquisition 1.01 Type Library“
  4. 选择“创建单位”
  5. 然后您将获得单位“WIALib_TLB.pas”
  6. 使用以下网址中的代码,了解如何枚举可用设备及其属性,并使用相机拍摄快照。

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

    很抱歉,评论是德语,但我认为代码很容易理解

答案 2 :(得分:1)

  • 你可以使用wia(windows图像采集)
  • 从组件菜单中选择导入组件并选择Windows图像 收购并安装
  • download并添加到您的项目
  • 然后
  • 如果你使用win xp
  • 启动新项目并放入
  • 名为Button1的新Button
  • 名为MultiPic的新CheckBox
  • 并在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

  • 将图片加载到图片