Canon SDK サンプルでは、200 ~ 300 dpi などの特定の解像度で写真を撮影したり、プログラムで解像度を変更したり、撮影した写真を別のファイル形式で保存したりするにはどうすればよいですか? ここでは .TIF 形式で保存する必要があります。それを行う機能が見つかりません。
2 に答える
1
記事の著者はこちら。列挙型PropID_ImageQuality
のいずれかで を設定することにより、画像の解像度を変更できます。ImageQuality
すべてのカメラがすべての列挙値をサポートしているわけではなく、実際の画像解像度はカメラとセンサーに依存することに注意してください。ピクセル単位の正確な画像が必要な場合は、自分でサイズを変更する必要があります。
また、カメラからダウンロードした画像は SDK によって変更されないため、カメラが持つ画像形式 (通常は CR2 および/または Jpg) のみを取得できます。
raw ファイルから tif を取得するには、SDK のイメージ メソッドを使用できます。raw 画像を作成するには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);
于 2016-01-30T18:18:35.517 に答える