掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TWAIN準拠スキャナーで48ビットカラースキャン (ID:48707)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
yTakeといいます。 TWAINドライバーの操作方法がわかる方がおられましたら、ご助言頂けると幸いです。 TWAIN準拠スキャナーでアプリケーションから48ビットカラーでスキャンしデータを取得する事を考えます。 インターネット上で、便利そうな物をみつけました。 url:http://www.kluug.net/delphitwain.php 元々、TWAINドライバーへのI/Fを提供するビジュアルコンポーネントだった様ですが、現在はそのソース部分の提供でプロジェクトのパスにそのソースのフォルダーを追加して使用しています。 サンプルプログラムもあり、比較的簡単にスキャナーを制御できそうです。 24ビットカラーや8ビットグレイスケールでは無事画像を取得できています。 しかしながら、48ビットカラーや16ビットカラーではデータ転送のところでエラーになっている様で、スキャンを開始すると直ぐにエラーになります。 肝心な点として、転送モードが挙げられます。24ビットカラーは、Nativeモード、Memory転送モードのいずれでも転送されますが、48ビットカラーはMemory転送モードのみで転送可能な点です。 しかし、この点も転送モードの変更を事前に行い、少なくともステータスなどから正しく変更されている事を確認の上、48ビットカラーでスキャンしても、エラーになります。 エラーの内容はアドレスに対する書き込み違反です。 当初、自分のこのTWAINのI/Fの使い方が悪いと思っていましたが、このTWAINのI/Fが48ビットカラーや16ビットグレイスケールの転送をサポートしていない気がしています。 自分の使い方の問題なら良いのですが、、、 サンプルプログラムは付属の”DelphiTwainDemo2”を修正して試しました。 もし、48ビットカラーや16ビットグレイスケールの転送の部分を自分で実装させるとなると、TWAINに詳しくないのでご助言を頂けると思います。 DELPHIに対しても未熟なので一筋縄ではいかないかなと考えています。 併せてアドバイス頂けると幸いです。 TWAINドライバーの仕様書やエプソンからのTWAIN開発者向けの資料も当たっています。 TWAIN-2.3-spec.pdf TwainProgGuideJRevL.pdf などです。 他に提供すべき情報があればお尋ね下さい。 思うに、48ビットの転送に使うメモリーの確保が、24ビットと違うと思います。 現状の24ビットでは転送メモリーにBitMapを用いている様に見受けられます。 48ビットの場合、RGBで各々配列を確保すべきで、それをTWAINに伝えてそこにスキャンデータを書き込んでもらい、スキャン後その領域をRGB毎に読み出すイメージですが、具体的は模索中です。 TWAINのI/Fに、PrepareMemXfer、TransferImageMemory、などの関数があるのでこの辺を修正するのかな?と思っています。 先ずは、方向性としては正しいでしょうか? よろしくお願いします。 なお、エプソン純正のスキャンソフトで48ビットカラーや16ビットグレイスケールをTIFFに保存できる事は確認しています。ハードやソフト的に不可能な事へチャレンジしているわけではございません。念の為。 当方、 Windows10、RAD Studio 10.2 EPSON ES-10000G
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.