So-net無料ブログ作成
検索選択

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"でいかがでしょう。 画像が編集されたとしても継承されるプライベート・チャンクです。 これが画像データとして受け入れてもらえるかは、作ってみないとわかりませんね。


あ、もちろん、どなたかサクッと作って下さってもかまいませんよ。


nice!(0)  コメント(4)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 4

noritan

先日、徘徊していて、こんなソフトウェアがあることを知りました。

http://www.hatsune.cc/labo/hatsune/
PNG 擬装ソフト「初音(HATSUNE)」Ver2.00

まさに、この記事で考えていた「PNGファイルに別のファイルを埋め込む」というコンセプトの作品です。しかも、最終更新2003年の作品です。これを使えば、BLOGへのアップロードも怖くありません。

でも、最近のso-netは、単なる「拡張子偽装PNGファイル」でも受け入れてくれるので、もう必要はないかな。

by noritan (2008-08-28 12:25) 

hamayan

そうそう、次はファイルサイズ偽装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) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。