Канон 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.