GIFファイルって調べてみると意外にすごいものだったりした
GIFファイルって調べてみると意外にすごいものだったりした
配列変数でバイナリデータ使えたら楽なんですけど (笑 …なのか?)
文字列と32bit数値しかできませんからね~。HSPは。(他の言語でできるのかどうか知りませんが)
LZW圧縮されたデータを復元するのに必要な"辞書"の作成が一苦労です。
といっても、それぞれのデータの位置と長さを表す変数を別に使えば配列変数のようなものができると思うのでそれで対処しようと思っています。
0~255 (最大値は変わることがある) の"文字コード"は絶対1byteなので長さ1でデータを入れて、
258~4095 (最小値は変わることがある) の"辞書コード"の長さは地道に毎回チェック、
とすればできるかと思います。
インターレースは…いちおう対応させないとまずいか。インターレースしてるはずのを普通に表示しようとするとぐちゃぐちゃになるし。
でも、HSPで画像ファイル使うんだったら読み込んでからgcopyだろうからあんまり意味ない気もするのだが。まあ気にしない気にしない。
さて、本題ですが、GIFって調べてみると、本当は、GIFアニメーションでマウスのクリックに反応して次のコマ表示するとか、テキストデータを画像データとして表示するとか、ほんのちょっとだけFLASHに近いようなことできるんですね。
これもうちょっと拡張したら簡易FLASHみたいなのができるんじゃないだろうか…。
でも、テキストデータの表示とか、対応してるアプリケーションが全然ないという… (IEやFireFoxでも対応していないらしい)。
実にもったいない。
アプリケーション拡張使って勝手に拡張してみようかな…。
でもまあとりあえずそういうことでした。
明日から、パソコンできなくはないんですが時間短いんで明日に完成させるのは難しそうです。
あと1週間の間には完成させたいです。アニメーションGIF入出力モジュール。
Susieプラグインを使ったGIFアニメの入出力のサンプルは検索で見つけたのですが、アニメーションのから単体のを抜き出すということしかできないみたいなのでそれよりもっと高機能でDLLなどの他のファイルを必要としないモジュールを作りたいと思います。
では。
アニメーションという利点はあるものの、256色しか扱えないから、本当にコンピュータ上で作成したCGぐらいの用途しかないよね。
それにしても、クリックの反応やテキストを扱えるとは・・・
ま、大きな画像なら.svg + javascriptでok
まあGIFはもともと小さな画像に使うようですから。
同じ色が並べば並ぶほど圧縮率高くなるし。
普通の画像 (写真とか) に向かないのは仕方がありません。
全体的にPNGのほうがいいみたいですねえ。
PNGの拡張verでアニメーションできる形式あるし…。
唯一GIFがPNGに勝っていることといえば圧縮・解凍が速いのと、インターレースのはGIFのほうが圧縮率が高いことですかねぇ。(通常のほとんどの場合はPNGのほうが圧縮率が高い)
でも、HSPでPNGを標準で対応させるのが容量がバカデカくなってしまうという理由でできないみたいですしGIFはGIFで使っていきたいです。
gifは手軽であってり、色々使い勝手が良いです^^
gifの隠れた機能をすべて実現できるようなアプリケーションはあるんでしょうかねぇ。
そうですよね!一番の良さは手軽さですよね!
2004年までは特許の問題がかかわってましたがそれもなくなってますし。
隠れた機能が使えるアプリがなければ作るしかないでしょうねぇ。
GIFファイルのアプリケーション拡張ブロックを使ってさらにもうちょっと拡張することも可能そうです。