Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

Solution for CodeIQ Q124

このプロジェクトについて

これは CodeIQ の次の問題に提出した解答です。

問題の内容は次のページで見ることができます。

出題者による解説は次のページにあります。

このプロジェクトの解答の解説は次のページにあります。

解答の説明

解答プログラムは Unixen 環境で動くシェルスクリプトとして作成しました。

PNG 画像の読み書きに netpbm を使用しています。その他の使用コマンドは od および printf で、POSIX により定められた用法に限っています。Debian GNU/Linux と OSX Mountain Lion + Homebrew の環境でテストしました。

エンコーダスクリプト encode.shdecode.sh と名前を変えるとデコーダスクリプトになります。次のようにリンクを作って使用してください。

$ ln encode.sh decode.sh
$ ./encode.sh
Usage: ./encode.sh plain.txt source.png >embedded.png
$ ./decode.sh
Usage: ./decode.sh embedded.png >plain.txt

埋め込みのアルゴリズムは出題サンプルの embedded.png と同様にしました。すなわち R/G/B の下位 3/2/3 ビットを利用して各ピクセルに 1 バイトずつ埋め込みます。未使用ピクセルにはすべて 0 を埋め込んでいます。

こちらで用意したテスト用の PNG 画像は次の 2 つです。

  • yaegashi-source.png
  • yaegashi-embedded.png

以下は実行例です。

$ echo '漢字、カタカナ、ひらがなの入ったPNG。' >plain.txt
$ ./encode.sh plain.txt yaegashi-source.png >yaegashi-embedded.png
$ ./decode.sh yaegashi-embedded.png
漢字、カタカナ、ひらがなの入ったPNG。

$ ./decode.sh yaegashi-embedded.png
漢字、カタカナ、ひらがなの入ったPNG。

$ curl -s http://dl.dropbox.com/u/110505645/CodeIQ/20121129/embedded.png | ./decode.sh -
漢字、カタカナ、ひらがなの入ったPNG。

About

/bin/sh solution for http://gihyo.jp/dev/serial/01/codeiq/0001

Resources

Releases

No releases published

Packages

No packages published

Languages