ZIP入りPNG - PNGフォーマットを調べた [ざれごと]
このBLOGでは、画像ファイルを置く場所が1GB用意されているのですが、プロジェクト・アーカイブなどのZIPファイルを置くことはできません。 拡張子を偽ってZIPをJPGとして置くことは可能ですが、サムネイルの作成でエラーが起こってしまい調子がよくありません。 もし、正式な画像フォーマットファイルにZIPを埋め込む事ができれば、誰が見てもそれは画像ファイルであり、BLOGにアップロードしても文句は言われないはずです。 ちょっと、調べるだけ調べてみますか。
ビットマップにZIPを埋め込む案
最初に考えたのが、画像のビットマップデータにそのままZIPを埋め込む方法です。 きっとBMP形式だと簡単にできるのだろうと思います。 画像の横幅を512ピクセル固定にしてピクセルあたり8ビットのグレー階調を持たせると、 100KBのファイルは縦200ピクセルの画像になります。 実際には、ファイル名と長さを入れるための管理領域が追加されます。
PNGを使う場合も、同じように画像データとして埋め込んでしまえば良さそうです。 そのためには、PNGフォーマットを調べなくては。
PNGフォーマットを調査した
というわけで、 W3CのPNGページに フォーマットを調べに行きました。 仕様書は、W3.orgにあるのですね。 これによると、PNGフォーマットは、チャンクと呼ばれるデータの集まりで表現されています。 また、画像データは、フィルタリングや圧縮を経てストリームに変換されてるようです。 けっこう、面倒ジャン。
チャンクとしてZIPを埋め込めるか?
ここで、画像データにZIPを埋め込むのではなくチャンクの一つとしてZIPを埋め込めないかという 考えが浮かんできました。 これなら、必要なのはCRCを計算する機能だけで済みます。 とはいっても、画像データ部分には、ダミー・データが必要です。 チャンク名は、"nzIp"でいかがでしょう。 画像が編集されたとしても継承されるプライベート・チャンクです。 これが画像データとして受け入れてもらえるかは、作ってみないとわかりませんね。
あ、もちろん、どなたかサクッと作って下さってもかまいませんよ。
先日、徘徊していて、こんなソフトウェアがあることを知りました。
http://www.hatsune.cc/labo/hatsune/
PNG 擬装ソフト「初音(HATSUNE)」Ver2.00
まさに、この記事で考えていた「PNGファイルに別のファイルを埋め込む」というコンセプトの作品です。しかも、最終更新2003年の作品です。これを使えば、BLOGへのアップロードも怖くありません。
でも、最近のso-netは、単なる「拡張子偽装PNGファイル」でも受け入れてくれるので、もう必要はないかな。
by noritan (2008-08-28 12:25)
そうそう、次はファイルサイズ偽装WMVのアップロードでお願いします。
1Gも容量が有るとか言っているくせに、、、ケチ。
by hamayan (2008-08-28 17:14)
2000年頃までは、当たり前の技術でしたよ。
それどころか、大量のファイルを分割して、画像に偽装してアップロード。
誰が見てもアイドル画像集にしか見えないけど、集めて結合すると、数100MBのデータになったりとか。CRC も一緒に出してくれるから、破損があったらすぐわかったり。
その手のソフトが数十できていて、どれで分割偽装されたのかを確認するのが大変でした。
うめーんとか、うめーこのみかんとかも、インプラント用ソフトだったはず。
by 昔の人 (2016-04-12 11:43)
goolge のブロガーでいまだにzipなどをuploadできません。
いろいろ調べたら、 どうも skydriveなどを使えということもみたいです。
時代はかわりました。 あれから、 2009年9月依頼です。
また、マイコンを趣味でいじくり始めました。
ずーっと仮想化とかやってたのですが、やはり何か動かしたくなってしまい
再開、 わからない時には聞きますので教えてください。
by 徘徊していたらたどりつきました。 (2016-05-27 12:20)