次の方法で共有


フィルム スキャナー用基本スキャン

WIA アプリケーションは、スキャナー項目ツリーの最上位の項目を列挙して、スキャナーのサポートされている機能を決定します。 その後、アプリケーションは最上位の項目をスキャン ソースとして使用します。 たとえば、フラットベッド スキャナー項目はフラットベッドからのスキャンに使用され、フィーダー アイテムはドキュメント フィーダーからのスキャンに使用されます。

フィルム アイテムのプログラミングとスキャン動作は、フラットベッド アイテムとほぼ同じです。

通常、アプリケーションはスキャナーのフィルム項目をプログラムするときに次の操作を実行しますが、必ずしもこの順序であるとは限りません。

  • WiaItemTypeProgrammableDataSource 項目フラグと WIA_CATEGORY_FILM の WIA_IPA_ITEM_CATEGORY 設定でマークされている WIA 項目を検索して、最上位レベルの WIA 項目を列挙します。

  • フィルム スキャン設定のチェックする WIA_IPS_FILM_SCAN_MODE の有効な値を読み取ります。 この設定は、正の画像または負の画像 (つまり、写真の否定) スキャンのサポートを示します。

  • WIA_IPS_FILM_SCAN_MODE プロパティを設定して、正または負の光源を選択します。

  • WIA_IPS_LAMP プロパティ (サポートされている場合) を使用して、スキャナー ランプの現在の設定を読み取り、必要に応じてランプをオンにします。

  • WIA_IPA_TYMEDWIA_IPA_FORMAT の有効な値を読み取ります。

  • WIA_IPA_FORMAT プロパティを設定して、データの最終形式を選択します。

  • WIA_IPA_DEPTHWIA_IPA_DATATYPEWIA_IPA_BITS_PER_CHANNEL などのイメージ設定を選択します。

  • WIA_IPA_TYMED プロパティを設定して、単一または複数ページ (サポートされている場合) のファイル転送を選択します。

  • 既存のフレームを検索する子項目を列挙します。

  • WIA_IPS_SUPPORTS_CHILD_ITEM_CREATION 項目を読み取り、スキャナーが新しいフレームの作成をサポートしているかどうかを判断します。

  • 既存のフィルムアイテムフレームを調整するか、新しいフレームを作成します(フレーム作成のサポートに応じて)。

  • WIA_IPS_SUPPORTS_CHILD_ITEM_CREATION プロパティを読み取り、フィルム スキャナー項目が特別なフォルダー取得機能をサポートしているかどうかを判断します。

  • 次の操作のいずれかを実行します。

    • WIA フィルム スキャナー項目 (フォルダー取得機能を使用しない) を使用してデータを転送します。 完全なフィルム スキャン領域は、単一の画像として返されます。
    • WIA フィルム スキャナー項目 (フォルダー取得機能を使用する) を使用してデータを転送します。 WIA フィルム スキャナーの子項目 (つまり、フレーム) のみがアプリケーションに転送されます。
    • 各フレーム項目に移動し、その WIA 項目を転送します。

ドライバーは通常、スキャナーのフィルム スキャン ユニットを使用してスキャンする場合に、次の操作を実行します。

  1. IWiaMiniDrv::drvValidateItemPropertiesIWiaMiniDrv::drvReadItemProperties を呼び出します。 WIA ドライバーは、アプリケーションのプロパティ設定フェーズ中にプロパティ設定を検証する必要があります。

  2. IWiaMiniDrv::drvWriteItemProperties を呼び出す。 渡される WIA 項目コンテキストは、フィルム スキャナー項目またはフィルム スキャン項目フレームに属しているため、ドライバーは、アプリケーションがスキャナーのフィルム スキャン ユニットを使用してスキャンすることを認識します。 一部のスキャナーは、フィルムスキャンにフラットベッドを使用します。 スキャナーは、(WIA_IPS_FILM_SCAN_MODE プロパティに基づいて) 適切な照明とフィルム スキャンの範囲の変更を構成する必要があります。

  3. IWiaMiniDrv::drvAcquireItemData を呼び出します。 渡される WIA 項目コンテキストは、フィルム スキャナー項目またはフィルム スキャン項目フレームに属します。 ドライバーは、フィルム スキャン ユニットを使用して、アプリケーションがスキャンしようとしていることを簡単に判断できます。

  4. 現在のフィルム アイテム プロパティ(任意の子フレーム プロパティを含む)を使用して、デバイスをプログラムし、フィルム スキャン ユニットからスキャンします。 WIA ドライバーがフィルム スキャン モードでない場合は、スキャンのためにこのモードに切り替えようとします。 アプリケーションでは、負の光と正の光の間でのみ切り替えることができます。 フィルム スキャナー項目を使用してスキャンすることは、アプリケーションとドライバーの間の契約です。スキャナーのフィルム スキャン機能がデータ転送に使用されることに同意します。

フィルム スキャナー項目にある WIA プロパティは、スキャン前にスキャナーのフィルム スキャン部分に適用する設定としてドライバーによって使用する必要があります。 WIA アプリケーションは、WIA ドライバーによって返されるデータのヘッダーを常に信頼する必要があります。 たとえば、スキャナーは、指定された画像の幅をスキャンできないことを判断し、値を切り上げる必要があります。 ドライバーは、アプリケーションが適切なデータを持つように、更新された幅情報でイメージ ヘッダーを更新する必要があります。 WIA ドライバーは、デバイスから返される実際のデータ情報で設定された WIA プロパティを常に更新する必要があります。