一昨日の記事で、2026年共通テスト「情報Ⅰ」にチャレンジした話を書きました。
その中で、個人的にいちばんテンションが上がった問題があります。
それは――
「白背景のあるキャラクター画像に、背景画像を重ねたい!」
という、パソコンで何かしらの画像処理をしたい人とって、あるあるの場面ではないでしょうか。
白背景、消したい問題
キャラクター画像を背景の上に重ねると、
キャラの周りの白い背景がそのまま残ってしまうこと、ありますよね。
「背景だけ透過したい…」
「キャラクターはそのまま残したい…」
普通なら、Photoshop等の画像編集ソフトを使えば解決します。
でも今回の共通テスト、すごいのはここです。
その「裏側の仕組み」を、問題として出してきた
これを見た瞬間、
「あ、画像合成ってこういう理屈でやってるんだ…!」
と、思わず唸りました。
今回の問題のテーマ
下の図のように、
・(A)白背景のキャラクター画像
・(B)背景画像
この2枚を重ねて、ある演算を各画素(ピクセル)ごとに行うと、(C)の画像になります。
では、その「ある演算」とは何でしょう?
というのが、共通テストで出題された問題です。
の画像合成方法-.png)
そもそも画像って何でできている?
画像は、画素(ピクセル)という小さな点の集まりでできています。
そしてコンピュータの世界では、これらはすべて2進数で表現されます。
今回は説明を簡単にするため、次のように決めます。
| 色 | 4ビット表現 |
|---|---|
| 白 | 1111 |
| 黒 | 0000 |
(※ 実際の画像はもっと長いビット数です)
今回使われる「論理演算」とは?
この問題で使われているのは、論理演算です。
論理演算とは、0(偽)と 1(真) を使って行う計算のこと。
コンピュータの内部処理や、プログラミングの if文・条件判定 の基礎でもあります。
Crebitの JavaScript講座でも学習範囲になります。
AND / OR / NOT 演算を整理しよう
ここで、一度整理しておきましょう。
論理演算の基本
| 演算 | 意味 | 例 |
|---|---|---|
| AND(論理積) | 両方が1なら1 | 1 AND 1 → 1 |
| OR(論理和) | どちらかが1なら1 | 1 OR 0 → 1 |
| NOT(否定) | 0と1を反転 | NOT 1 → 0 |
ビット単位で見ると…
| 入力A | 入力B | AND | OR |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
NOT演算は単独で、
| 入力 | NOT |
|---|---|
| 0 | 1 |
| 1 | 0 |
選択肢を確認してみる
共通テストの選択肢は次の4つでした。
- AND演算
- OR演算
- AND演算の後にNOT演算
- OR演算の後にNOT演算
では、選択肢1(AND演算)から見ていきましょう。
AND演算で本当に画像は合成できる?
背景部分の画素
- (A)白い背景 → 1111
- (B)背景画像の色 → 例として 1101
AND演算すると、
1111 AND 1101
---------
1101
👉 (B)の画素がそのまま残る
キャラクター部分の画素
- (A)キャラクター → 例として 1010
- (B)白いキャラクターシルエット → 1111
AND演算すると、
1010 AND 1111
---------
1010
👉 (A)のキャラクターがそのまま残る
結論:答えはどれ?
- 背景では「背景画像」が残る
- キャラクター部分では「キャラクター」が残る
つまり、
白背景だけが自然に消え、キャラと背景が合成される
これは、(C)の画像と完全に一致します。
👉 正解は「選択肢1:AND演算」
他の選択肢はどうなる?
OR演算や、NOTを組み合わせた場合も
同じようにビットごとに計算してみると、
- キャラが消える
- 背景が反転する
- 全体が不自然になる
など、どうやっても(C)にならないことが分かります。
(ぜひ、時間がある人は実際に考えてみてください)
おわりに
今回の問題、
「画像合成って、こういう仕組みなんだ」
と、腹落ちする学びがありました。
単なる暗記ではなく、実際のデジタル処理とつながる問題が出るのが、
共通テスト「情報Ⅰ」の面白いところですね。
また今回の問題を通して、
「実際の画像合成では、対象物が写真で、背景が今回のように単色(白)とは限らない場合はどうなるの?」
「そもそも(B)のキャラクターシルエット(白)はどんな意味があって、どのように作るの?」
と気になった人もいるかもしれません。
実はその点についても、この問題の続きとして出題されていて、さらに一段深い理解につながる構成になっています。
よく考えられた、学びの多い問題だと感じました。
プログラミングやITを学んでいる人ほど、きっとワクワクできる問題だったと思います。
Crebitでは、こうした「仕組みがわかると楽しくなる」学びを大切にしています。
また面白い問題があれば、解説していきます 👍
