PictureFan の ver.0.31.1 を公開しました。
ダウンロードはこちら http://www.geocities.jp/iooiau/picturefan.html から。
今回は以下の更新を行いました。
- コマンドラインオプションで /thumbnails-only と /max が指定されている場合、サムネイルのウィンドウを最大化するようにした
- Susie プラグインからの埋め込み ICC プロファイルの読み込みに対応した
- Vista 以降では新しく関連付けの設定を行えないようにした
- アプリケーションマニフェストに対応 OS の指定を追加した
- BMP/PNG 形式の ICC プロファイルが読み込まれなくなっていた不具合を修正
- PictBear のプラグインフォルダにフィルター以外のプラグインがある場合、プラグインのキャッシュが利用されない不具合を修正
- キャプチャ時にレイヤードウィンドウがキャプチャされない不具合を修正
Susie プラグインからの埋め込み ICC プロファイルの読み込みは、簡単に対応可能だったので対応しましたが、 現時点で公開されているプラグインで ICC プロファイルを埋め込むものは恐らくありませんので、 もしかしたら何か問題のある可能性もあります。
関連付けの設定に関しては、元々 Windows 98 や 2000 を使っていた頃に実装したもので、 現在では既に時代遅れとなっていますので、Vista 以降では新しく関連付けを行えないようにしました。
当方で作成したSusieプラグインのサンプルを使用してみましたが埋め込みプロファイルが読み込まれませんでした。後述のアドレスにプラグインと動作確認用のホストが置いてありますので、何かお気づきの点があれば教えていただけると助かります。 http://bit.ly/1DyU4SA
返信削除プロファイルがピクセルデータの後にあるようですが、Packed DIBでない場合プロファイルはヘッダとパレットの後に付けるべきではないでしょうか。
削除(以下のRemarksに書かれている内容)
https://msdn.microsoft.com/en-us/library/dd183381%28v=vs.85%29.aspx
そうして返されたヘッダ(+プロファイル)とピクセルデータを、そのまま SetDIBitsToDevice 等に渡して描画できると思います。
それは実際やってみましたがだめでした。現状のサンプルはプラグインから受け取ったヘッダとピクセルデータを連結してSetDIBitsToDeviceに投げています。当方が知りたいのは、PictureFanでサンプルプラグインからのICCプロファイルが認識されないのはどの辺が疑わしいか、ということです。
返信削除pHBInfo で返されたメモリ領域に、ヘッダの後に続いてプロファイルがあることを期待していました。
削除PictureFan の描画処理もヘッダの後にプロファイルを付けて SetDIBitsToDevice を呼んでいるのですが、それでうまくいかないとするとなぜでしょうね。
いずれにしても、ピクセルデータの後にプロファイルがあるのを考慮に入れた方が良さそうですね。
状況をあらためて確認しようと思い、ヘッダの直後にICCプロファイルを配置するバージョン(のプラグイン)を再実装してみました。結果としてはPictureFanでも当方のサンプルでも期待される挙動になりました。
返信削除元のコードは破棄してしまったため詳細は分かりませんが、何かしらのミスが混入していたと思われます。
ご迷惑をおかけしました。
うまくいかれたようで良かったです。
削除ICCプロファイル対応のSusieプラグイン期待しています。