web制作のポイント

Retinaディスプレイとレスポンシブ画像の基本|なぜ2倍サイズの画像が必要なのか

更新日:2026-05-30 著者:unigram 読了目安:7分

この記事の要点

Retinaディスプレイでなぜ画像がぼやけるのか、その仕組みをピクセルの基礎から解説。srcset・picture・sizes属性の使い方、CSS背景画像のRetina対応まで、初心者がつまずきやすいポイントをまとめて解説します。

「画像を2倍サイズで用意してください」とデザイナーや先輩から言われて、なぜ?と思ったことはありませんか。スマホやMacのディスプレイで写真がぼやけてしまう原因と、それを防ぐための画像の扱い方をわかりやすく解説します。

まず「ピクセル」の話から

画面の映像は無数の小さな点の集まりで表示されています。この点1つひとつをピクセル(px)と呼びます。

CSSで width: 300px と書いたとき、この「300px」は実は画面上の物理的なドット数ではありません。ブラウザが計算に使う「CSS上の仮想的なピクセル」です。これを論理ピクセル(CSS px)といいます。

一方、ディスプレイに実際に並んでいるドットの数を物理ピクセル(デバイスピクセル)といいます。

昔のディスプレイはこの2つが1:1で対応していました。しかしスマートフォンや高解像度のPCが普及した現在、この比率が変わってきました。

Retinaディスプレイとは何か

Appleが「Retina(レティーナ)ディスプレイ」と呼ぶ高解像度画面では、論理ピクセル1pxの領域に物理ピクセルが縦横2つずつ、合計4つ敷き詰められています。

📌 デバイスピクセル比(DPR)とは
論理ピクセルに対して物理ピクセルが何倍あるかを表す数値です。
・通常のディスプレイ:DPR = 1
・Retina / 高解像度スマホ:DPR = 2(機種によっては3)
JavaScriptでは window.devicePixelRatio で確認できます。

この仕組みによって文字や図形は非常に滑らかに見えます。ところが画像ファイルにはこの恩恵が自動では届きません

よく使われるデバイスのDPRと画面サイズ

「自分のスマホはDPRがいくつなのか」を知っておくと、画像サイズを決めるときの判断がしやすくなります。代表的なデバイスの論理解像度・物理解像度・DPRをまとめました。

iPhone(iOS)

機種の目安 論理解像度(CSS px) 物理解像度 DPR
iPhone SE(第3世代) 375 × 667px 750 × 1334px 2
iPhone 14 / 15 390 × 844px 1170 × 2532px 3
iPhone 14 Plus / 15 Plus 428 × 926px 1284 × 2778px 3
iPhone 14 Pro / 15 Pro 393 × 852px 1179 × 2556px 3
iPhone 14 Pro Max / 15 Pro Max 430 × 932px 1290 × 2796px 3
📌 ポイント
iPhoneは機種によってDPR 2または3が混在しています。現行の多くのiPhoneはDPR=3です。Web制作では安全側として2倍(2x)画像を用意するのが一般的で、3倍対応は必要に応じて検討します。

Android スマートフォン

機種の目安 論理解像度(CSS px) 物理解像度 DPR
Pixel 7 412 × 915px 1080 × 2400px 約2.6
Pixel 8 412 × 915px 1080 × 2400px 約2.6
Galaxy S24 360 × 780px 1080 × 2340px 3
Galaxy S24 Ultra 384 × 824px 1440 × 3088px 約3.75
ミドルレンジ機全般 360 × 800px 前後 720 × 1600px 前後 2
📌 Androidは機種の幅が広い
Androidは各メーカーが独自のディスプレイを搭載するため、DPRは1.5〜4近くまで幅があります。ハイエンド機ではDPR 3以上も珍しくありません。ただし実務では2x対応を基準にしておけば、ほとんどの機種で十分きれいに表示されます。

タブレット

機種の目安 論理解像度(CSS px) 物理解像度 DPR
iPad(第10世代) 810 × 1080px 1620 × 2160px 2
iPad Air(M2) 820 × 1180px 1640 × 2360px 2
iPad Pro 11インチ(M4) 834 × 1194px 2388 × 1668px 2
iPad Pro 13インチ(M4) 1024 × 1366px 2048 × 2732px 2
Galaxy Tab S9 753 × 1085px 1600 × 2560px 約2.1

PC・Mac

環境 DPR 備考
一般的なWindowsノートPC / デスクトップ 1 フルHD(1920×1080)クラス。DPR=1が多い
Windows高解像度ディスプレイ(4K等) 1.5〜2 スケーリング設定によって変わる
MacBook Air / Pro(Retina) 2 全モデルRetinaディスプレイ搭載
iMac(Retina 5K) 2 Retina搭載

デバイス別まとめ:DPRの傾向

カテゴリ 主なDPR 制作上の目安
iPhone(現行機) 2〜3 2x画像で対応。重要なビジュアルは3x検討
Androidスマホ 2〜3(機種による) 2x画像を基準にする
iPad / Androidタブレット 2前後 2x画像で基本的に対応できる
MacBook / iMac 2 2x画像で対応
一般WindowsPC 1(4Kは1.5〜2) 1x画像でOK。4K環境が多いなら2x検討

現在のWebサイト訪問者の多くはスマートフォンからのアクセスです。2x対応を基本として画像を準備しておけば、ほぼすべての主要デバイスで画像のぼやけを防げます

なぜ画像だけぼやけるのか

論理ピクセル 300px 幅の領域に、実際には 600 物理ピクセルが存在しています。ここに 300×300px の画像ファイルを表示しようとすると、ブラウザは1つの画像ピクセルを4つの物理ピクセルに拡大して描画します。この「引き伸ばし」がぼやけの正体です。

状況 画像ファイルのサイズ 表示領域(論理px) 結果
通常ディスプレイ(DPR=1) 300×300px 300×300px きれいに表示
Retinaディスプレイ(DPR=2) 300×300px 300×300px 引き伸ばされてぼやける
Retinaディスプレイ(DPR=2) 600×600px 300×300px きれいに表示

つまり「2倍サイズの画像を用意する」理由は、Retinaディスプレイの600物理ピクセルに対して画像側も600px分の情報を持たせるためです。

2倍画像を使う基本的な書き方(srcset)

HTMLには srcset(ソースセット)という属性があり、ディスプレイの解像度に応じて最適な画像を自動で切り替えられます。

<img
  src="image.jpg"
  srcset="image.jpg 1x, image@2x.jpg 2x"
  alt="サンプル画像"
  width="300"
  height="200"
>

上記のように書くと、DPR=1の環境では image.jpg、DPR=2以上の環境では image@2x.jpg が自動的に選択されます。ファイル名に @2x を付けるのは慣習的な命名ルールで、技術的な制約ではありません。

📌 srcset属性とは
<img> タグに複数の画像候補を指定できる属性です。ブラウザが画面解像度・画面サイズ・通信速度などを考慮して最適な1枚を自動選択します。

画面サイズによって画像を切り替える(sizes との組み合わせ)

Retinaへの対応(解像度の違い)に加えて、PCとスマホで表示サイズ自体が異なるケースもあります。たとえばPCでは画像を600px幅で表示し、スマホでは画面幅いっぱいに表示したい場合です。

そのときは sizes 属性と srcsetw(幅)記法を組み合わせます。

<img
  src="image-600.jpg"
  srcset="image-300.jpg 300w,
          image-600.jpg 600w,
          image-1200.jpg 1200w"
  sizes="(max-width: 768px) 100vw, 600px"
  alt="サンプル画像"
>
記述 意味
300w この画像ファイルは横300pxのもの
sizes="(max-width: 768px) 100vw, 600px" 768px以下の画面では画面幅いっぱい(100vw)、それ以外は600pxで表示する

ブラウザはこの情報をもとに「画面サイズ × DPR」を計算し、srcset の中から最適な画像を選びます。通信量の節約にもつながります。

PCとスマホで画像ファイルを丸ごと切り替える(picture タグ)

横長のバナー画像をスマホでは縦長に切り替えたい、というようにトリミングや構図ごと変えたい場合は <picture> タグを使います。

<picture>
  <source media="(max-width: 767px)" srcset="image-sp.jpg">
  <img src="image-pc.jpg" alt="サンプル画像">
</picture>

<source> タグの条件(media属性)に一致した場合はそちらの画像が使われ、どの条件にも一致しない場合は <img> のsrcがフォールバックとして使われます。

📌 フォールバックとは
主な手段が使えなかったときの代替手段のことです。<picture> タグに対応していない古いブラウザでは、<img> タグのsrcが読み込まれます。

CSS背景画像のRetina対応

CSSの background-image で画像を使う場合は、メディアクエリで対応します。

/* 通常ディスプレイ用 */
.hero {
  background-image: url("hero.jpg");
}
/* Retina対応(DPR 1.5以上に適用) */
@media (-webkit-min-device-pixel-ratio: 1.5),
       (min-resolution: 144dpi) {
  .hero {
    background-image: url("hero@2x.jpg");
    background-size: cover;
  }
}

background-size: cover を忘れずに指定しましょう。2倍サイズの画像をそのままの大きさで表示してしまうと意図しない表示になります。

まとめ:Retina対応 実装の選び方

やりたいこと 使う手法
解像度に応じて同じ構図の画像を切り替える <img srcset="... 1x, ... 2x">
画面サイズと解像度に応じて最適な画像を自動選択 <img srcset="... w" sizes="...">
PCとスマホで構図・トリミングを変える <picture><source media="..."><img></picture>
CSS背景画像のRetina対応 メディアクエリ min-resolution で2x画像を切り替え

最初のうちは srcset="image.jpg 1x, image@2x.jpg 2x" の書き方を覚えるだけで十分です。レスポンシブ全体の仕組みと組み合わせて理解を深めたい方は、レスポンシブWebデザインの基本の記事もあわせてご覧ください。

よくある疑問Q&A

Q. 全部の画像を2倍で用意しないといけませんか?
ロゴ・アイコン・目立つバナーなど、ぼやけが気になりやすい画像から優先的に対応しましょう。写真ならぼやけが比較的目立ちにくいこともあります。SVGで作れるアイコンやロゴは解像度に依存しないのでベストな選択です。
Q. 2倍画像にするとページが重くなりませんか?
ファイルサイズは大きくなります。srcsetを正しく使えばDPR=1の環境では軽い画像が読み込まれるため、すべてのユーザーに重い画像を送ることにはなりません。また WebP(ウェブピー)フォーマットを使うとJPGより大幅にファイルサイズを削減できます。
Q. SVGってどんな画像ですか?
SVG(Scalable Vector Graphics)はドットではなく「線の数式」で画像を表現するファイル形式です。どれだけ拡大してもぼやけません。ロゴ・アイコン・シンプルなイラストに最適です。写真のような複雑な画像には使えません。

この記事を書いた人

unigram
web、印刷、映像などの制作をしています。@京都、フリーランス18年目。 大学で講師もしています。 自身の備忘録も兼ねて、Web制作・WordPress・SEO・GA4・生成AI活用をテーマに情報発信しています。わかりやすく優しい内容で記事作成を心がけています。