rifをなんとかするblog
http://rif2.blog.shinobi.jp/
rifをなんとかするblog
ja
2018-08-26T23:18:23+09:00
-
http://rif2.blog.shinobi.jp/%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B/%E3%81%8A%E3%81%8A%E3%82%88%E3%81%9D11%E5%B9%B4%E6%8C%AF%E3%82%8A%E3%81%AE%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%99%E2%80%A6
おおよそ11年振りの更新です…
PainterXを最後にSAIに移行してしまい、Painterも使わなくなってしまい、RIFファイルに対するあれこれはすっかり、忘却の彼方です。
 ということで、今後はRIF以外の内容で更新が増えるかと思います。
まぁ こんなブログなんて、みんな忘れてると思うけどね。...
ということで、今後はRIF以外の内容で更新が増えるかと思います。
まぁ こんなブログなんて、みんな忘れてると思うけどね。]]>
お知らせ
2018-08-26T23:18:23+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/painter/rif%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%81%A7%E3%82%8F%E3%81%8B%E3%81%A3%E3%81%A6%E3%82%8B%E7%AF%84%E5%9B%B2%E3%80%82
rifの中身でわかってる範囲。
ビックエンディアン。
先頭の2バイトが、0x2000 (0x00,0x20)で始まってる。
続いて2バイト、Painter5だと0x00000(0x00,0x00)それより後は、0x00002。
その後 高さ、幅が 2byteずつ。
飛んで0x2Eから、dpiが固定小数点(16bit/16b...
先頭の2バイトが、0x2000 (0x00,0x20)で始まってる。
続いて2バイト、Painter5だと0x00000(0x00,0x00)それより後は、0x00002。
その後 高さ、幅が 2byteずつ。
飛んで0x2Eから、dpiが固定小数点(16bit/16bit)で。
0x40から謎のバイナリ 0x00 から 0xFF まで。なんなんでしょう?
後は、サムネイル情報のところに書いた通り。
ifrifpp/plugin_rif 共にこの情報から、画像のサイズとDPIを返しています。]]>
painter
2007-11-17T00:37:47+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E4%BD%99%E8%AB%87/photo-paint%E3%81%AE%E6%93%8D%E4%BD%9C
PHOTO-PAINTの操作
内部的な話ですが、PHOTO-PAINTの操作は、Borland C++ BuilderのVCLのVariantを使っています。
最初は、PHOTO-PAINTのTLBファイルがあったのでタイプライブラリの取り込みをしてみたのですがどうもちゃんと変換できないようでコンポーネントをコンパイルするとき...
最初は、PHOTO-PAINTのTLBファイルがあったのでタイプライブラリの取り込みをしてみたのですがどうもちゃんと変換できないようでコンポーネントをコンパイルするときにエラーになってしまいました。
と、いうことでVariant.CreatteObject()等々を使ってPHOTO-PAINTを使っています。
VBAのマニュアルが参考になりました。
ちなみに、PaintShop Pro もOLEとして登録されていようですがマニュアルがないのでインタフェイスが分かっても使い方が分からないですね。
PaintShopのOLE周りの資料が見つかるまではPaintShopを使うの難しいです。
その辺りの情報がいただければ挑戦してみたいとは思います。PHOTO-PAINTより軽そうだし。]]>
余談
2007-11-13T04:32:49+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/ifrifpp/photo-paint%E5%AF%BE%E7%AD%96%E6%96%AD%E5%BF%B5
PHOTO-PAINT対策断念
PHOTO-PAINTがRIFファイルのあるディレクトリのタイムスタンプを更新していまう件ですが、対策を断念しました。
所詮プラグインなので、ホストプログラムがスレッドを使った時に同時に同じディレクトリのファイルを開くときにどうしても後から開いた方が先に開いたスレッドより遅く終わった時に結局、先に...
所詮プラグインなので、ホストプログラムがスレッドを使った時に同時に同じディレクトリのファイルを開くときにどうしても後から開いた方が先に開いたスレッドより遅く終わった時に結局、先にファイルを開いたときのタイムスタンプを拾ってしまいそれを最後に書き出してしまいます。
α5で失敗してたし、直そうかとも思いましたが、同時に複数のホストプログラムが起動した場合など考えると別のプロセスのスレッドとの競合も考えねばならないので一つのプラグインで対応するには重すぎるし本筋から外れた処理なのでこれ以上の対策は不毛と判断。
素直にPHOTO-PAINTがタイムスタンプを更新してしまわない方法もしくは、PaintShop Proで置き換える等根本的な対策をしたほうがよいかと、ということでまずはCorelにPHOTO-PAINTでタイムスタンプを更新しない方法を問い合わせてみました。
まだ、返事は来ていません。]]>
ifrifpp
2007-11-13T04:19:55+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E4%BD%99%E8%AB%87/%CE%B2%E5%93%81%E8%B3%AA%E3%81%AB%E5%90%91%E3%81%91%E3%81%A6
β品質に向けて
全体的に書き直しています。
エラー処理とかを見直してます。
エラーがあるとリソースリークする場合があったり…ということで、...
エラー処理とかを見直してます。
エラーがあるとリソースリークする場合があったり…
ということで、]]>
余談
2007-11-12T04:16:34+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B/%E6%8E%B2%E7%A4%BA%E6%9D%BF%E5%80%9F%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82
掲示板借りました。
ブログだけでは足りないようなので掲示板借りました。
お知らせ
2007-11-11T03:58:39+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B/%E5%86%8D%E3%81%B3%E8%99%AB%E5%8F%96%E3%82%8A%E3%81%95%E3%82%93%E3%80%82
再び虫取りさん。
α4でGetPreview()でバグってました。α5をお使い下さい。
お知らせ
2007-11-10T19:16:04+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E4%BD%99%E8%AB%87/c99%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
C99コンパイラ
C++に切り替える前にちょっとMingGW32が使えないかちょっと見てみました。
Cで書いてたのですが、Borland C++ Builder 5はまだ、C99に対応してないので変数の宣言を前もってしないと行けないのが面倒でした。
Win32だと、ポインタ渡しが多いのであんまり意味が無いんだけど...
Cで書いてたのですが、Borland C++ Builder 5はまだ、C99に対応してないので変数の宣言を前もってしないと行けないのが面倒でした。
Win32だと、ポインタ渡しが多いのであんまり意味が無いんだけど。
CONSTで宣言と同時に初期化することが多いので、だんだん括弧のネストが深くなって嫌になってきました。
C99だと変数の宣言がブロックの途中でもできるようになるのでいいかなと思ったけど、最終的にWin32APIを多用しているうちに、あんまり意味が無くなり結局C++でラッパークラスを各方向に落ち着きました。]]>
余談
2007-11-10T09:22:58+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/%E4%BD%99%E8%AB%87/%E5%AE%9F%E3%81%AF%E3%80%82
実は。
PainterXのサムネイルだけに対応したifrifx.spiを作ろうかと思ったけど、タイムスタンプ問題を調べてたら、時間が無くなったので今日はあきらめました。
GetPreview()をGetPicture()にリネームするだけなので、そのうちに。
小さい画像しか見れないので「表示」とかしても...
GetPreview()をGetPicture()にリネームするだけなので、そのうちに。
小さい画像しか見れないので「表示」とかしても大きな画像が見れないのが欠点。]]>
余談
2007-11-10T09:17:14+09:00
noname
NINJA BLOG
noname
-
http://rif2.blog.shinobi.jp/ifrifpp/photo-paint%E5%AF%BE%E7%AD%96
PHOTO-PAINT対策
PHOTO-PAINTがRIFを開くときにそのRIFのディレクトリのタイムスタンプを更新してしまうもよう。前に出たエラーと共に考えると開くときにこっそりバックアップファイルを作成しているっぽい。
ということで、RIFファイルを開く前のディレクトリの更新時間を取得してBMPが出来たら取得した時間を再...
ということで、RIFファイルを開く前のディレクトリの更新時間を取得してBMPが出来たら取得した時間を再設定するようにしてみました。]]>
ifrifpp
2007-11-10T09:10:42+09:00
noname
NINJA BLOG
noname