体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

【謎解きプログラム】解像度に対応せよ!【dpi】解答と解説

デジタル・IT

【謎解きプログラム】解像度に対応せよ!【dpi】

本問題は、「解像度に対応せよ!」というテーマで、プログラムにちなんだ謎を解くというものでした。

それでは以下、各問題とその解答を見ていきましょう。

問題のオープニング

ある日、出社すると、あなたのPCのログイン画面に、謎の挑戦状が表示されていた。

「24時間以内に謎が解けない場合は、このPCのデータは消失する。

 謎は、あなたが真のプログラマーなら解けるものだ」

これは挑戦状ではなく脅迫状だ!

そこには、見たことのない謎が掲載されていた。

あなたは歴戦のプログラマーとして、データを救うために、この謎に挑むことになった。

説明

解像度に対応せよ!

画面には、画像ファイルについての情報が示されています。

dpiやピクセル数、実サイズなどを変えることで、他の値がどのように変わるかを当ててください。

問題1

提示情報
  ピクセル数:幅 640、高さ 480
  実サイズ(cm): 幅 5.42、高さ 4.06
  解像度(dpi):300
変更する値
  解像度(dpi):300 → 150
  (解像度を変更するだけなので、実サイズは変わらず)
求める値
  ピクセル数:幅 ?、高さ ?

// 選択肢
ピクセル数:幅 640、高さ 480
ピクセル数:幅 1280、高さ 960
ピクセル数:幅 320、高さ 240

解像度は、ディスプレイやビットマップ画像、プリンターやスキャナーで扱う画像の精細さです。この解像度は、画素(ドット、ピクセル)の数で表します。

dpiは、ドット・パー・インチの略です。1インチ(2.54cm)の中に、どれだけの画素があるかがdpiになり、この値が大きいほど精細になります。

以下、dpiの簡単な式を示します。全て、同じ式を変形したものです。

ピクセル数 / 解像度(dpi) = 実サイズ(インチ)

解像度(dpi) * 実サイズ(インチ) = ピクセル数

ピクセル数 / 実サイズ(インチ) = 解像度(dpi)

問題では、実サイズを変えずに、解像度を半分にしています。

解像度(半分)、実サイズ(固定)

「解像度 * 実サイズ = ピクセル数」なので、等式を成り立たせるためには、ピクセル数を半分にしなければなりません。

解像度(半分) * 実サイズ(固定) = ピクセル数(半分)

そのため、3番目の選択肢の『ピクセル数:幅 320、高さ 240』が答えになります。

Javaサンプル

以下、サンドボックス(言語は「Java8」)で、実行確認できるコードを示します。コード欄に、下記のコードをコピペして、INPUTは空で、RUNボタンを押してください。

// 参考コード
import java.lang.Math;

class Main{
static final double inch = 2.54;
// main
public static void main(String[]args) throws Exception {
// 提示情報
double cmW = 5.42;
double cmH = 4.06;
// 計算
int dpi = 150;
int pxlW = (int)Math.round(cmW * dpi / inch);
int pxlH = (int)Math.round(cmH * dpi / inch);
// 出力
System.out.println(“pxlW : ” + pxlW);
System.out.println(“pxlH : ” + pxlH);
}
}

1 2 3 4次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。
GetNews girl / GetNews boy

オスカー2018年晴れ着撮影会