Канон SDK Статья Йоханнеса Бильдштейна

В примере Canon SDK, как я могу сделать снимок с определенным разрешением, например, 200-300 точек на дюйм, или программно изменить разрешение и сохранить снятый снимок в другом типе файла, здесь мне нужно сохранить в формате.TIF? Я не могу найти какую-либо функцию, чтобы сделать это.

2 ответа

Автор статьи здесь. Вы можете изменить разрешение изображения, установив PropID_ImageQuality с одним из ImageQuality перечисления. Обратите внимание, что не каждая камера поддерживает каждое значение перечисления, и фактическое разрешение изображения зависит от камеры и датчика. Если вам нужно изображение с точностью до пикселя, вам придется изменить его размер самостоятельно.

Кроме того, изображение, загружаемое с камеры, не изменяется SDK, поэтому вы можете получить только тот формат изображения, который имеет камера, обычно CR2 и / или Jpg.

Чтобы получить tif из необработанного файла, вы можете использовать методы изображений SDK. Для создания необработанного изображения используйте EdsCreateImageRef метод и сохранить его использовать EdsSaveImage метод. В качестве цели вы можете использовать EdsTargetImageType.TIFF (или же TIFF16 для 16 бит на канал).

РЕДАКТИРОВАТЬ:

Быстрый пример для сохранения изображения в формате TIFF (не проверено):

IntPtr imgRef;
//Open image
IntPtr inStream;
EDSDK.EdsCreateFileStream("inFile.cr2", EdsFileCreateDisposition.OpenExisting, FileAccess.Read, out inStream);
EDSDK.EdsCreateImageRef(inStream, out imgRef);
EDSDK.EdsRelease(inStream);

//do whatever you like with imgRef now

//Save image
IntPtr outStream;
var settings = new EdsSaveImageSetting();
EDSDK.EdsCreateFileStream("outFile.tif", EdsFileCreateDisposition.CreateAlways, EdsFileAccess.Write, out outStream);
EDSDK.EdsSaveImage(imgRef, EdsTargetImageType.TIFF, settings, outStream);
EDSDK.EdsRelease(outStream);

Чтобы получить изображение в формате TIFF, снимайте в формате RAW и после загрузки изображения используйте EdsSaveImage функция с EdsTargetImageType установлен в kEdsTargetImageType_TIFF, Разрешение DPI не имеет прямого отношения, но вы всегда можете использовать такие инструменты, как Exiftool, чтобы явно установить DPI.

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