プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Web技術
  • 【Web技術】配信のための画像の知識
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Web技術】配信のための画像の知識

09.13

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

概要表

画質容量透過HTMLでの拡大用途
png綺麗大きめOKNGロゴ、小さめのバナー、UI部品、図形、背景が透明な画像
jpg圧縮すると劣化小さめ(圧縮をするという前提)NGNG大きめの写真、イラスト、大きいサイズで色数が多い画像
svgきれい小さめ
(複雑な画像は大きい)
OKOKアイコン、文字、単色でシンプルな画像

webP

次世代画像フォーマット。2020年後半以降のブラウザしか対応していないが今後はできるだけサイト内の画像はこれに置き換えるのは望ましい。全ての画像を置き換えるのはブラウザの対応状況からしてまだ厳しい。透過もいけます。

デメリットとしては、サポート状況と画像生成に時間がかかる点

AVIF

webPよりも圧縮率が高いが、まだwebPよりも普及はもう少し後になる。透過もいけます。

デメリットとしては、サポート状況と画像生成に時間がかかる点

JEPG

一般的に写真はこれです。

WebPを使わない場合のファーストチョイスとしては基本はJPEGになります。ブラウザによってJPEGなど旧世代のフォーマットを使うなどの出し分けが必要になります。非可逆圧縮なのでPNGには画質では劣りますが、容量は下がるので配信面では優れています。

quality

画質です。配信においては100ではなく90など少し画質を落とすとサイズが下がります。また、エンコーダーによっても同じqualityによってどれくらい画質が変化するかもかわります。より画質の良いエンコーダーを探すことも重要です。有名なものとしては「mozjpeg」があります。

形式

ベースライン

プログレッシブの方が生成に時間がかからない。

プログレッシブ

一般的にベースラインよりもファイルサイズが小さくなるが生成に時間がかかる。配信する上ではできればこちらを使っっていくべきです。mozjpegはデフォルトでこちらを採用しています。

カラーモード

RGB

Web画像はこちらです。

Exif

JPEGのメタ情報が格納されます。位置情報やサムネイルも含まれるので、ユーザーからの投稿画像を受け付けるときはExif情報を消す対応が必要になったりします。その際は、Exif OrientationとICCプロファイルは消さないようにしましょう。(画像の向きや色味がおかしくなる可能性があります。)

GIF

アニメーションを行いたいときは、画像ならGIFが第一候補になります。ただ、長時間の動画や高度なイラスト風景などmp4などの動画形式を検討するようにしましょう。256色しか使えないので見た目も悪くなってしまいます。ちなみに可逆圧縮です。

PNG

JPEGは透過ができないので、透過させたい場合はこちらを使います。インデックスカラー(8bit)においても半透化ができるのでジャギーが目立ちづらくなります。(GIFでも対応できるがPNGほど透過率を制御できない。)

また、PNGは可逆圧縮なので見た目が劣化しないという特徴もあります。「劣化すると困るのでPNGにしている」というサイトが世の中には存在しますが、パフォーマンス要件的に本当に必要なのかはちゃんと検討する必要があります。(まずはJPEGで試してそれでもクオリティに問題がありそうならPNGにするという感じで検討を進めるのが良いです。)

また、より細かく見たい詳細画面では劣化なしのPNGにして、一覧ではJPEGにするという使い分けでも良いと思います。(要件によりますが。)

PNG8

色数が少ない画像の場合はPNG8を使うと良いです。PNGの中ではかなり強力に圧縮されるため容量が少なくなります。具体的にはボタンやログなどが該当します。

PNG24

透過を必要としないイラスト

PNG32

透過を必要とするイラスト

ベクタ画像(svg)

webP、jpeg、gif、pngなどはピクセル単位で扱うラスタ画像です。拡大すると色が滲んだりします。

そこで、アイコンのような図形の組み合わせでできているものであればSVGを使うという選択肢もあります。SVGはテキストでできているので圧縮が可能です。

よく、圧縮から漏れているケースもあるのですが忘れずに指定すると良いです。

画像の最適化

jpegtranや、GIFsiclなどのツールがありますが、これはimageminなどのラッパーツールから呼び出したり、タスクランナーやビルドツールを使ったりすることが一般的です。

もしくは、ImageOptimなどのGUIツールから使ったりする場合もあります。

スポンサーリンク
  • 2023 09.13
  • miyabisan2
  • コメントを書く
  • Web技術
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 06.16

    【Web】HTTP、ブラウザのキャッシュ機能について

  2. 2021 07.31

    【Web】同一生成元ポリシー(SOP)について

  3. 2023 09.11

    【Web技術】高速配信の戦略

  4. 2021 07.31

    【Web】「CORS」を使わないSOPの緩和方法

  5. 2023 09.16

    【Web技術】画像の遅延読み込み(lazyload)について

  6. 2018 05.27

    ファイルの「圧縮」と「アーカイブ」と「解凍」、gzip圧縮について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Web技術】高速配信の戦略

【Web技術】CDNについて

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー