3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🌌 ZIP を PNG に宿す――バイナリの魂を像に変える小さな魔法

Posted at

― Indexed PNG を使った “zip-to-image” の物語 ―

ある日、ふと思いました。

「ZIP をそのまま PNG に閉じ込められたら、なんかロマンじゃない?」

画像の中に、ZIP が丸ごと眠っている。
それをまた引き出せる。
しかも 完全可逆で、容量はほぼ増えない

そんな無謀とも言える妄想を、そのまま実装して Web で公開しました。


🔗 デモサイト(公開中)

ZIP ⇄ PNG(可逆・容量ほぼ増加なし)コンバータ:
https://uni928.github.io/TestYou/index33.html


🌱 発想:

ZIP を PNG に閉じ込める…と言っても、
画像の RGB に無理やりエンコードするのではありません。

実際の PNG の仕様を理解してみると、もっと綺麗な方法がありました。


🎨 Indexed PNG という器

PNG には パレット(索引カラー)形式があります。
1ピクセル = インデックス番号(1バイト) だけ。

RGB ではなく、番号を置くだけ。
この番号さえ壊れなければ、どんなバイナリデータでも 1byte=1pixel として安全に保存できる

PNG の中身は Deflate(可逆圧縮)なので、
ZIP データをそのまま埋め込んでも、
ZIP の内容は一切変わりません。


🧪 実験:ZIP → PNG → ZIP の完全一致

実験してみると…

  • 172KB の ZIP → 172KB の ZIP(完全一致)
  • 68MB の ZIP → 68MB の ZIP(完全一致)

しかも、PNG のファイルサイズは

ZIP + 数 KB 程度しか増えません。

つまり、

PNG = ZIP を包んだだけの透明な器

という状態を実現できました。


🧩 なぜ容量が増えないの?

  • PNG(Indexed)は Deflate 圧縮
  • ZIP も Deflate 圧縮

つまり ZIP の圧縮済みバイト列を
PNG の「圧縮データ領域(IDAT)」に
ほぼそのまま流し込むだけ なのです。

結果、ほとんど容量が増加しません。


⚠️ Windows の “警告” だけは逃れられない

実は、ZIP のバイナリは完全一致なのですが…

Windows のセキュリティ機能だけは復元ZIPに警告を出す事があります。

ZIP をダウンロードすると、「Zone.Identifier」という
「インターネットから来たファイルですよ」という印が付くためです。

これは ZIP の中身とは関係ありません。
ファイルシステム側のメタ情報の問題です。

対処は簡単:

ZIP を右クリック → プロパティ → 「ブロック解除」 / 「許可する」

これで正常に解凍できます。


🧨 注意:bat ファイルなどは警告が強く出るかも

Windows は .bat など実行ファイル系に対して
特に厳しい警告を出すことがあります。

ZIP が壊れているわけではなく、
Windows が「これは危険かもしれん」と言ってるだけです。

7-Zip や WinRAR なら普通に展開できます。


🌈 おわりに(ポエム)

PNG は、ただの画像形式ではありません。

その中に、ZIP を寝かせることができる。
ただの 2D の絵ではなく、バイナリを運ぶ器にもなれる。

技術的にはとてもシンプルなのに、
どこか詩的で、デジタルアートのような美しさがある。

見た目は画像。
中身は ZIP。

そんな二重構造のデータを、
クロスオーバーのように行き来させると

私たちが普段「フォーマット」だと思っているものの境界線が
ふわりと溶けていく気がします。

「画像」が「圧縮データ」になり、
「圧縮データ」が「画像」になり、

その境界を軽やかに飛び越えていく瞬間。

そんな小さな魔法を、ぜひ触ってみてください。

🔗 https://uni928.github.io/TestYou/index33.html


🙏 Special Thanks

いろいろな人のアイデアやテストの積み重ねで
ここまで完成度の高い “zip-to-image” ができました。

技術は時に魔法。
魔法は時に、こんな静かな形で現れるのかもしれません。


📘 関連リンク(再掲)

👉 今まで作ったサイト

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?