Canon SDK пример для обработки изображений

Я хотел бы использовать EDSDK canon в программе aC# или VB.NET для просмотра файлов cr2.

Я нашел пример кода о том, как управлять камерой - пример:

https://github.com/esskar/Canon.Eos.Framework

но ничего об открытии файлов, извлечении данных изображения и их отображении - или сохранении больших пальцев или полноразмерного изображения в формате jpg...

Может ли кто-нибудь направить меня к таким примерам? Спасибо.

Примечание - у меня есть EDSDK 2.12, я надеюсь, что более старые версии также могут помочь.

Изменить: Спасибо за предложение, оно указывает на библиотеку C, которая может помочь... Хотя я не знаю, как, не уверен, как я могу использовать его в точечной сети.

1 ответ

Я знаю, что прошло много времени с тех пор, как этот вопрос был задан, но все же это может кому-то помочь. Для обработки файлов canon raw с помощью SDK вы должны сделать следующее:

uint err;
//Create input stream
IntPtr inStream;
err = EDSDK.EdsCreateFileStream("Test.CR2", EDSDK.EdsFileCreateDisposition.OpenExisting, EDSDK.EdsAccess.Read, out inStream);
//Create image reference
IntPtr imgRef;
err = EDSDK.EdsCreateImageRef(inStream, out imgRef);

//Set properties
err = EDSDK.EdsSetPropertyData(imgRef, EDSDK.PropID_WhiteBalance, 0, 4, EDSDK.WhiteBalance_Cloudy);
//TODO: set any imageRef compatible property you need here.

//Create output stream
IntPtr outStream;
err = EDSDK.EdsCreateFileStream("TestOut.jpg", EDSDK.EdsFileCreateDisposition.CreateAlways, EDSDK.EdsAccess.Write, out outStream);
//Get image info
EDSDK.EdsImageInfo info;
err = EDSDK.EdsGetImageInfo(imgRef, EDSDK.EdsImageSource.FullView, out info);
//Set image settings
EDSDK.EdsSaveImageSetting set = new EDSDK.EdsSaveImageSetting();
set.JPEGQuality = 9;
//Save image
err = EDSDK.EdsSaveImage(imgRef, EDSDK.EdsTargetImageType.Jpeg, set, outStream);

//Release data
EDSDK.EdsRelease(imgRef);
EDSDK.EdsRelease(inStream);
EDSDK.EdsRelease(outStream);

Конечно, вам не нужно читать файл с HD, но вы также можете использовать ссылку на изображение, полученное с камеры.

Другой способ получить предварительный просмотр изображений без SDK - это прочитать сам CR2. В основном это просто файл Tiff, в котором хранится миниатюра jpg (160x120) и два изображения RGB чуть больше. Этот сайт предоставляет полезную информацию о формате CR2: http://lclevy.free.fr/cr2/

С уважением

Другие вопросы по тегам