あまつぶ

12.20 8:00 【Image Compression Manager】

 昨日からなんとなくタイトルをつけてみた(笑)。今日もコーヒーを飲みながらこれを書く。なんとも胃に悪そうだが。。
 心臓あたりの痛みは相変わらずときどきくる。でもまあ動けなくなる程の痛みはこないみたいなのでとりあえずは安心かな。しかしいつも突然だから結構こわい。痛みの程度もランダムみたいだし。心臓の鼓動にあわせて痛みも変わったりして「やっぱり心臓か?」と思うこともあるけど、どちらかといえば体の表面に近い部分が痛い感じなので(といっても、神経痛なら痛いあたりを指で押さえたりすると痛いらしいが、ぼくは痛くない)まあ大丈夫だろうと。ほんとに痛くなったら今度はレントゲンを撮ってちゃんと調べてもらうつもりだけど、、こうして心配するくらいならすぐに調べてもらって安心する方がいいのかも知れないかな。あるいはなあなんかあったとしても、はやく原因がわかる方がいいような気もする。

 と、そんなこととはまったく関係なく、ふと、QuickTime 3.0のAPIを使ってJpegの圧縮率を変更するアプリケーションを作ろうかなとか考え中。最初はIconPartyからGifの圧縮に使えないかなぁと思ったんだけどQT3ではGifの圧縮はサポートしていないらしい。まあライセンスの問題があるから難しいんだろうと思うけど。前にも書いたけどもう一度書いておくと、現在のバージョンのIconPartyではGif保存がサポートされているけど将来的にはサポートがなくなる。代わりにclip2gifにAppleEventを送って作成してもらうということにするつもり。その方法がわかるまで暫定的にサポート。UNISYSに訴えられたら負けるけど、、(汗)。Gifの圧縮ではLZW以外の圧縮も使えるらしいので(なんだかよく知らないけど、ランレングス?)そちらを使って保存するという手も一応あるけどそれでは圧縮率も落ちるし。そこまでしてGif出力をサポートする必要もないと思うし。ま、できればできるに越したことはないのかも知れないけど。
 おっと、話がそれた。QT3のImage Compression Managerのこと。QT3のSDKからファイルを移さないといけないのかと思ったらUniversal Headers 3.2にちゃんと入っていた。だからまあ68kバージョンならImageCompression.hをインクルードするだけですぐ使える。なーんだ、簡単。PPCでもQuickTimeLibをプロジェクトに追加するだけかな(どっちにしてもQT3がないと動かないということになるからWeak Importじゃなくてもいいかもしれないな)。
 で、ヘッダを見て使いそうなルーチンをチェック。最初からドキュメントを読んでもいいけど先にヘッダで関数のあたりをつけておくと楽かも知れない。使いそうな構造体もメンバをチェックして紙にメモする。オンラインドキュメントを何度も参照するのは面倒だし。あるいは自分で必要な部分だけまとめて別のドキュメントにするという手もある。たしかDrag Managerのときはそうしたはず。「読むのだるいなぁ」と思いながらふと「文書」っていうフォルダを開いたら「ドラッグマネージャについて」というドキュメントが入っていて開いてみると自分で必要な部分だけ日本語になおしたものが(笑)。まとめたことすら忘れていたらしい(^^;; こうやってまとめればあとからでも使いやすいしいいかも。紙のメモだとどっかいっちゃったりするし(管理がなってないだけか)。
 プログラムの流れとしては、まずJpegファイルを開いて(オープンダイアログあるいはドラッグ&ドロップ)そこからデータを読み込み、それをまずDecompressして表示。次に圧縮率を変更してCompressし直し、またそれをDecompressして表示。これらを比較しながら圧縮率を変更できるという感じかな。Windowは2つ開いて、「変更前」と「変更後」みたいな感じか。データサイズの比較もできないとまずいよな……。そう思って圧縮、展開のルーチンをチェック。まずファイルをチェックするだけで画像の大きさ(縦×横)なんかがわかるらしいからそれを調べておいて、その大きさや色数にあうようにオフポートを作成。そこに展開する。で、「変更前」としてウィンドウに表示。次にまずはデフォルトの圧縮率で圧縮しなおす。それも別のオフポートに展開して表示。あとはデータのサイズの比較と圧縮率なんかを表示すると(これは同じウィンドウの中でもいいしフローティングウィンドウでもいいし)。
 イメージとしてはImageReadyのJpeg処理部分を抜き出したような感じかな(ほんとか(笑))。ImageReadyではもとの画像と変更後の画像を同じウィンドウで表示したりわけたりできて面白かったけど、まあ比較なら一緒に見て比べた方がいいだろうし別ウィンドウでいいかな。2つウィンドウを表示するとなるとそれらの兼ね合いも問題になるけど……(^^;; 圧縮率の変更はまたどこかからCDEFを探してきて横向きのバーで設定すると。たぶんこのウィンドウは別にフローティングウィンドウで作成した方がいいかな。データのサイズはもとの大きさと変更後の大きさを表示して、できれば28800bpsだったらどのくらいで落とせるかとかもあるといいかもしれない。画像サイズのタグ……とかは余力があれば(笑)。画像にエフェクト……とかはいらないよね(笑)。
 できればAppleScriptに対応してバッチ処理とかできると気持ちよさそうだけどそこまではいらないかー(笑)。

 とか考えていたらまたも関係ないアイデアが浮かぶ。タグを手打ちしている時に面倒なのは、画像のサイズ指定だ。まあ指定しなくてもちゃんと表示してくれるけどこれは指定する方がいい。けど、毎回打つのは面倒だし適当に作ったらそもそも大きさを調べるのが面倒な場合もある。そんな時にFKEYで(またFKEYか(笑))呼び出すと画像を選ぶダイアログが表示されて、選ぶとその画像の縦、横、ファイルサイズを計算して「WIDTH="512" HEIGHT="384" ALT="test.jpg(33k)"」とかいうテキストをクリップボードに入れてくれるとか。「HREF="..."」とかも入れてくれるといいかもしれないけど……どうかな。
 前にはいぱかでHTMLエディタみたいなものが作れたらいいなと思った時にもやはり問題になったのはこのあたり。画像のパスを指定するとその画像の大きさなんかを調べてくれるXFCNでも作ればなにかに使えるかも知れない。あるいはカードに表示してくれるというのもできそうだけど、と思ったけど、、そういうのどこかにありそうだよなぁ。最新バージョンならPictureコマンドでもJpeg表示とかサポートしてそうな気もするし。ま、表示するだけならQTで圧縮したPICTを使う手もあるし。
 いずれも問題はQT3がないと動かないことけど、OS8.5を買った人ならついているからだいたい大丈夫かな? 使わずにがんばるという選択肢もあるけど、せっかくあるんだから使わない手はないよね。

 で、、QTに浮気しているのでIconPartyは進まず(汗)。あとでIconPartyの開発の役に立つこともあんまりなさそうだし(Gifのオープンくらいは役に立つかな? Jpegを扱えるようにしても256色じゃ、ねぇ。BMPを開いたり、、しないよねぇ(笑)。Photoshop形式の、、(以下略))。なにかの効果を連続してかけたものをムービーにできるとかしょうもないことならいろいろ思いつくけど……。それより、バグをなおすのだバグを(苦笑)。次のバージョンでは、プレビューからの固定選択とか新規ウィンドウでの大きさ指定とか選択範囲でのクリッピング(ん〜、Photoshop)なんかをサポートする予定。なんかbのうしろが進んでいるだけの割にはいろいろ機能が追加されているような気もしつつ。でも、ま、未だにアイコンの処理ができないんだからやっぱり0.2くらいだよね(^^;;

 次回は上記のアプリケーションの続き、あるいは途中で行き詰まってIconPartyの続き、あるいはFKEYを作ってるかも知れないけど。もしくはちょっと走ってきた話。4ヶ月振りくらいに40kmも休みなしで走った割には筋肉痛もなくびっくり。明日あたりに思い出したようにきたりしたらいやだけど(笑)。
 11:00 【没FKEY】

 FKEY、作った。作ったけど、、使えるのかな? ドキュメントを書いていて思い出したけど、WIDTH、HEIGHTタグを作るならTONTATAさん(@TONTATA's Home Page (Japanese edition))のIMG Fixerを使った方が簡単だし便利だ……。
 というわけで公開は見合わせ(笑)。たぶん欲しいなんていう人はいないと思うけどもしいたらメールください。折り返しアーカイブ(圧縮状態で4k弱)を送らせていただきます。

to December 19, 1998 ↑ to December index → to December 21, 1998