エンジニアのスキルを試すコードパズル ─この問題、あなたは解けますか?

第1回百聞は一見に如かず~文字列処理+画像処理=? ─小飼弾からの挑戦

問題

以下の24bitフルカラー画像

画像
画像はこちらからダウンロード(embedded.png)

には、UTF-8で

漢字、カタカナ、ひらがなの入ったPNG。\n

という文字列が埋め込まれています。

元となった画像は

画像
画像はこちらからダウンロード(source.png)

です。テキストが埋め込まれているのは見た目ではほとんどわかりません。

このように24bitフルカラー画像に文字列を埋め込むプログラム(エンコーダ⁠⁠、および文字列を埋め込んだ画像から文字列を取り出すプログラム(デコーダ)を作成し、任意の画像に埋め込んだものを送ってください。

作成したコードはテキストファイル(.txt)に貼り付け、ファイルアップロードで提出してください。

解答画像は自身のサーバやブログなどにアップし、そのURIやURLを解答コードと一緒にテキストファイルに貼り付けてください。もしお持ちでない場合は、画像ファイルの提出はなくてもかまいません。

[ヒント]
PNGはOK。BMPもOK。JPEGはNG。
[参考]
ステガノグラフィ(Steganography)
Steganography - Wikipedia, the free encyclopedia

難易度
★★☆☆(当該領域で、実務を一通り遂行できれば解けると思われるレベル)
言語/領域(Perl、Pythonなど)
言語不問
解答形式
ファイルアップロード形式
解答評価のポイント
総合力とユーモアのセンス
挑戦を開始する前にご準備いただきたいもの

解答はテキストファイルを解答画面からアップロードしていただきます。作成したコードはテキストファイルにはりつけ、解答画像は自身のサーバーやブログのURI/URLをテキストファイルに貼り付けて提出してください。もしサーバやブログがない場合は、解答画像の提出はなしでも構いません。

あらかじめ、⁠設問.txt」を用意しておくとスムーズです。

その他注意事項
  • 一度挑戦を開始すると、解答を送信しなかった場合でも、1回目のチャレンジは終了となります。
  • 何度でも挑戦できます。
  • 白紙に近いなど採点不能なものは、フィードバックいたしかねます。
  • この問題の正解およびコードレビューは、技術評論社のサイトこの連載上にて掲載します。
  • 優秀な解答、面白い解答をいただいた方はニックネーム、解答内容、解答フィードバック内容を公開させていただく可能性があります。ご了承ください。
解答受付先
https://codeiq.jp/ace/kogai_dan/q124
受付期間(開始~終了)
11月29日(木)AM10時~12月13日(木)AM10時
採点可能人数
100人
想定時間(分)
30分~
制限時間
なし

おすすめ記事

記事・ニュース一覧