技術系

黒塗り画像を復元する

技術系
Tiny people carrying key to open padlock. Password, laptop, confidential flat vector illustration. Security and protection concept for banner, website design or landing web page

こんにちは、なかにしです。

今回は、黒塗り画像を復元していこうと思います。

やっていこう!

使用する画像

元画像と、それを加工した画像を用意しました。
見た目の通り、「機密情報」です。(image-2.0で作りました)

▼ 元画像

▼ 黒塗り:透明度0%

▼ 黒塗り:透明度1%

見た目上は、ちゃんと隠れているように見えますね。

やり方

GIPM というフリーソフトを使用します。

詳しい説明は伏せますが、以下のようにポチポチっと値を変えるだけです。

戻してみた

「使用する画像」を対象に処理をして、隠れた部分が見えるようになるかを確認します。

黒塗り:透明度0%

見えませんでした。

黒塗り:透明度1%

見えました。

なぜ見えるのか

画像の黒塗りは、色の変更に似ています。

例えば赤色はRGBで(255, 0, 0)で、黒は(0, 0, 0)です。

赤色の部分を黒塗りをする場合、以下のように変更されます。
透明度0%:(255, 0, 0) → (0, 0, 0)
透明度1%:(255, 0, 0) → (2, 0, 0)

GIPMで行った処理は、この数字に掛け算や割り算をして、値を変えるというものです。

つまり、透明度1% の (2, 0, 0)に 100をかけ、(200, 0, 0)に変更。
すると、黒塗りが解除され、赤色が復元できるというわけです。

透明度0%の場合に復元できなかった原因は、掛け算や割り算をする処理にあります。
0に何をかけても割っても0ですよね。なので、復元ができません。

おわりに

Xで、画像を黒塗りでポストしているリプ欄で「復元できますよ」というコメントを度々みかけるので、前々から気になっていました。

結論として、黒塗りは透明度が1%でもあれば、中身を見ることができそうです。

ちなみに、モザイクは復元不可です。

あれは画像をぐちゃぐちゃに書き換えるらしいので、
モザイクを外すとかのレベルではなく、予測して生成するしかないそうです。

今回はここまで!
Enjoy Hacking!