gpt4 book ai didi

c++ - 拍照并将图像保存到我的c :\photo using edsdk 2. 10,使用c++

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:40 36 4
gpt4 key购买 nike

我是c++和canon EDSDK初学者,现在可以用sdk控制相机拍照,但是我想把图片保存到路径c:\photo,试过一些方法,现在图片是没有保存到相机,但我无法在我的电脑中找到它们。我应该如何更改我的代码或添加什么?

#include "stdafx.h"
#include "EDSDK.h"
#include "EDSDKErrors.h"
#include "EDSDKTypes.h"
EdsError getFirstCamera(EdsCameraRef *camera);
int _tmain(int argc, _TCHAR* argv[])
{ EdsError err=EDS_ERR_OK;
EdsCameraRef camera=NULL;
bool isSDKloaded=false;
// Initialize SDK
err=EdsInitializeSDK();
if(err==EDS_ERR_OK)
{
isSDKloaded=true;
}

// Get first camera
if(err==EDS_ERR_OK)
{
err=getFirstCamera(&camera);
}
EdsOpenSession(camera);
EdsInt32 saveTarget = kEdsSaveTo_Host;
err = EdsSetPropertyData( camera, kEdsPropID_SaveTo, 0, 4, &saveTarget );
EdsSendCommand(camera, kEdsCameraCommand_TakePicture, 0);
EdsCloseSession(camera);
EdsTerminateSDK();
return 0;
}



EdsError getFirstCamera(EdsCameraRef *camera)
{
EdsError err=EDS_ERR_OK;
EdsCameraListRef cameraList=NULL;
EdsUInt32 count=0;
// Get camera list
err = EdsGetCameraList(&cameraList);
// Get number of cameras
if(err == EDS_ERR_OK)
{
err = EdsGetChildCount(cameraList, &count);
if(count == 0)
{
err = EDS_ERR_DEVICE_NOT_FOUND;
}
}
// Get first camera retrieved
if(err == EDS_ERR_OK)
{
err = EdsGetChildAtIndex(cameraList , 0 , camera);
}
// Release camera list
if(cameraList != NULL)
{EdsRelease(cameraList);
cameraList = NULL;
}
return err;
}

最佳答案

几周前我遇到了同样的问题。你告诉相机它应该将图片存储到主机,但你没有告诉它磁盘上有多少可用空间。这可以通过

EdsInt32 saveTarget = kEdsSaveTo_Host;
err = EdsSetPropertyData( camera, kEdsPropID_SaveTo, 0, 4, &saveTarget );
EdsCapacity newCapacity = {0x7FFFFFFF, 0x1000, 1};
err = EdsSetCapacity(camera, newCapacity);

在下一步中,您必须修改下载功能。如果你想下载图片到你的主机你必须处理以下事件

kEdsObjectEvent_DirItemRequestTransfer

要在主机 PC 上指定下载目的地,您可以试试这个:

str_path = " c:\\photo\\Img.jpg";
const char* ch_dest = str_path.c_str();
EdsCreateFileStream( ch_dest ,kEdsFileCreateDisposition_CreateAlways,kEdsAccess_ReadWrite, &stream);

我想提一下,上面的代码片段会在每次触发镜头时覆盖文件 Img.jpg。

干杯TL

关于c++ - 拍照并将图像保存到我的c :\photo using edsdk 2. 10,使用c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16253029/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com