BMP-Embedding 1.0d
バージョン 1.0dからPNGファイルの読み込みおよび、保存が可能になりました。従いまして、以下の文章中で現れるビットマップファイルとは、ウィンドウズビットマップ形式もしくはPNG形式の画像ファイルであるとお読み変えください。
このプログラムは24bitカラーのビットマップファイルにほかのファイルを埋め込むプログラムです。最大でビットマップファイルの3分の1の大きさのファイルまでを埋め込むことが可能です。当然のことながら、埋め込まれたあとのビットマップファイルに対し、減色などのエフェクトをかけると元のファイルの情報は失われます。非可逆圧縮しても元の情報は失われます。PNG形式は可逆圧縮なので保存画像として用いることが出来るわけです。
埋め込み方は24ビットのRGB情報のうちRGBの1バイトのうちそれぞれ下位の3,3,2ビットを用いて1ピクセルに1バイトの情報を埋め込んでいます。したがって元の画像と比べて若干くらめな感じの画像となります。
現在のバージョンでは、埋め込まれた部分と埋め込まれてない部分の境界がわからないように”余白”の部分には乱数を用いて勝手な情報を埋め込んであります。したがって、元がのっぺりした画像でも全体的にまんべんなく埋め込まれたような感じとなります。また、このために若干埋め込み処理に時間がかかるようになりました。
使い方は埋め込むファイルと埋め込み先の画像ファイルを指定して埋め込みボタンを押すだけです。使用可能なファイルは基本的にBMPファイル及びPNGファイルです。埋め込み画像の読み込みのみ、JPGファイルも使えますが、読み込んだあとは、ビットマップに変換して用いています。埋め込まれた画像は元の画像ファイル名に「~」(チルダー)をつけたファイル名として保存されます。
オプションでファイル名を埋め込むことも可能です。オプションメニューから
"ファイル名の埋め込み" をチェックしてください。
また、オプションで保存形式を選択できます。BMP形式とPNG形式のいずれかが選択可能です。デフォルトではBMP形式になっています。さらに、PNG形式に対しては圧縮の強度を選択できます。
抽出は画像ファイルを指定して抜き出しボタンを押すだけです。抽出されたファイルは画像ファイル名の拡張子部分を「.imb」に変えたファイル名で保存されます。ただし、埋め込み時にファイル名が埋め込まれている場合にはそのファイル名を用いて保存することも可能です。
盗聴法が施行されました。暗号化されたファイルは暗号化されたために何らかの情報がそこに隠されているとわかってしまいます。しかし、画像ファイルにほかのファイルを埋め込めばそこに情報が隠されていることすら隠せます。そのことを念頭においたため、埋め込む際にはファイルサイズと埋め込むファイルそのもの以外の情報を埋め込んでいません。
実行するにはいくつかのランタイムDLLが必要です。ここでダウンロードしてみてください。
PNGファイルの読み込みには Tarquin 氏のコンポーネント GLDPNG を使用させていただきました。Tarquin 氏のホームページで入手可能です。
GLDPNG (c) 1998,2000 Copyright Tarquin
All Rights Reserved.
ZLIB ver 1.1.2 (c) 1995-1996 Copyright
Jean-loup Gailly and Mark Adler
このプログラムはフリーウェアとして公開します。このプログラムを用いたことによるいかなる損失も作者は一切の責任をおいません。配布、改変はご自由に行ってください。と書きつつ、ソースファイルをつけなかったら改変はしにくいですよね。ということで、ソースファイルも公開することにしました。サンプル画像に埋め込んであります。
2000年9月16日 大熊猫大王