2018'08.26.Sun
PainterXを最後にSAIに移行してしまい、Painterも使わなくなってしまい、RIFファイルに対するあれこれはすっかり、忘却の彼方です。
ということで、今後はRIF以外の内容で更新が増えるかと思います。
まぁ こんなブログなんて、みんな忘れてると思うけどね。
ということで、今後はRIF以外の内容で更新が増えるかと思います。
まぁ こんなブログなんて、みんな忘れてると思うけどね。
PR
2007'11.17.Sat
ビックエンディアン。
先頭の2バイトが、0x2000 (0x00,0x20)で始まってる。
続いて2バイト、Painter5だと0x00000(0x00,0x00)それより後は、0x00002。
その後 高さ、幅が 2byteずつ。
飛んで0x2Eから、dpiが固定小数点(16bit/16bit)で。
0x40から謎のバイナリ 0x00 から 0xFF まで。なんなんでしょう?
後は、サムネイル情報のところに書いた通り。
ifrifpp/plugin_rif 共にこの情報から、画像のサイズとDPIを返しています。
先頭の2バイトが、0x2000 (0x00,0x20)で始まってる。
続いて2バイト、Painter5だと0x00000(0x00,0x00)それより後は、0x00002。
その後 高さ、幅が 2byteずつ。
飛んで0x2Eから、dpiが固定小数点(16bit/16bit)で。
0x40から謎のバイナリ 0x00 から 0xFF まで。なんなんでしょう?
後は、サムネイル情報のところに書いた通り。
ifrifpp/plugin_rif 共にこの情報から、画像のサイズとDPIを返しています。
2007'11.13.Tue
内部的な話ですが、PHOTO-PAINTの操作は、Borland C++ BuilderのVCLのVariantを使っています。
最初は、PHOTO-PAINTのTLBファイルがあったのでタイプライブラリの取り込みをしてみたのですがどうもちゃんと変換できないようでコンポーネントをコンパイルするときにエラーになってしまいました。
と、いうことでVariant.CreatteObject()等々を使ってPHOTO-PAINTを使っています。
VBAのマニュアルが参考になりました。
ちなみに、PaintShop Pro もOLEとして登録されていようですがマニュアルがないのでインタフェイスが分かっても使い方が分からないですね。
PaintShopのOLE周りの資料が見つかるまではPaintShopを使うの難しいです。
その辺りの情報がいただければ挑戦してみたいとは思います。PHOTO-PAINTより軽そうだし。
最初は、PHOTO-PAINTのTLBファイルがあったのでタイプライブラリの取り込みをしてみたのですがどうもちゃんと変換できないようでコンポーネントをコンパイルするときにエラーになってしまいました。
と、いうことでVariant.CreatteObject()等々を使ってPHOTO-PAINTを使っています。
VBAのマニュアルが参考になりました。
ちなみに、PaintShop Pro もOLEとして登録されていようですがマニュアルがないのでインタフェイスが分かっても使い方が分からないですね。
PaintShopのOLE周りの資料が見つかるまではPaintShopを使うの難しいです。
その辺りの情報がいただければ挑戦してみたいとは思います。PHOTO-PAINTより軽そうだし。
2007'11.13.Tue
PHOTO-PAINTがRIFファイルのあるディレクトリのタイムスタンプを更新していまう件ですが、対策を断念しました。
所詮プラグインなので、ホストプログラムがスレッドを使った時に同時に同じディレクトリのファイルを開くときにどうしても後から開いた方が先に開いたスレッドより遅く終わった時に結局、先にファイルを開いたときのタイムスタンプを拾ってしまいそれを最後に書き出してしまいます。
α5で失敗してたし、直そうかとも思いましたが、同時に複数のホストプログラムが起動した場合など考えると別のプロセスのスレッドとの競合も考えねばならないので一つのプラグインで対応するには重すぎるし本筋から外れた処理なのでこれ以上の対策は不毛と判断。
素直にPHOTO-PAINTがタイムスタンプを更新してしまわない方法もしくは、PaintShop Proで置き換える等根本的な対策をしたほうがよいかと、ということでまずはCorelにPHOTO-PAINTでタイムスタンプを更新しない方法を問い合わせてみました。
まだ、返事は来ていません。
所詮プラグインなので、ホストプログラムがスレッドを使った時に同時に同じディレクトリのファイルを開くときにどうしても後から開いた方が先に開いたスレッドより遅く終わった時に結局、先にファイルを開いたときのタイムスタンプを拾ってしまいそれを最後に書き出してしまいます。
α5で失敗してたし、直そうかとも思いましたが、同時に複数のホストプログラムが起動した場合など考えると別のプロセスのスレッドとの競合も考えねばならないので一つのプラグインで対応するには重すぎるし本筋から外れた処理なのでこれ以上の対策は不毛と判断。
素直にPHOTO-PAINTがタイムスタンプを更新してしまわない方法もしくは、PaintShop Proで置き換える等根本的な対策をしたほうがよいかと、ということでまずはCorelにPHOTO-PAINTでタイムスタンプを更新しない方法を問い合わせてみました。
まだ、返事は来ていません。
リンク
カテゴリー
最新記事
(08/26)
(11/17)
(11/13)
(11/13)
(11/12)
最新TB
ブログ内検索
最古記事
(11/08)
(11/09)
(11/09)
(11/09)
(11/09)