トップへ(mam-mam.net/)

PHPでWebP画像に変換する方法|JPG・PNG対応の実装コード付き

PHPでWebP画像に変換する方法|JPG・PNG対応の実装コード付き

Webサイトの表示速度やSEO対策のために、画像をWebP形式に変換したい方へ。
このページでは、PHPでJPG・PNG画像をWebPに変換する方法を、imagecreatefromjpeg/pngimagewebp関数を使った実装コード付きで解説します。
画像の軽量化やブラウザ対応のポイントも紹介しているので、WebP導入を検討している方におすすめです。

PHPでWebP画像に変換するには
imagewebp(GdImageオブジェクト, "保存先ファイル名" 又は null [, 品質0~100] )
を使います。

jpeg画像をwebp画像に変換する

画像ファイル「img.jpg」を「img.webp」に変換します。

<?php
  // 「img.jpg」画像ファイルを読む
  $img=@imagecreatefromjpeg("img.jpg");

  // WebP変換して「img.webp」ファイルに保存します
  if($img){
    imagewebp($img, "img.webp");
  }

  // 破棄
  imagedestroy($img);

画像ファイル「img.jpg」をwebpに変換して表示します。

<?php
  // 「img.jpg」画像ファイルを読む
  $img=@imagecreatefromjpeg("img.jpg");

  // WebP変換して出力します
  if($img){
    header("Content-Type: image/webp");
    imagewebp($img ,null);
  }

  // 破棄
  imagedestroy($img);

png画像をwebp画像に変換する

画像ファイル「img.png」を「img.webp」に変換します。

<?php
  // 「img.png」画像ファイルを読む
  $img=@imagecreatefrompng("img.png");

  // WebP変換して「img.webp」ファイルに保存します
  if($img){
    imagewebp($img, "img.webp");
  }

  // 破棄
  imagedestroy($img);

画像ファイル「img.png」をwebpに変換して表示します。

<?php
  // 「img.jpg」画像ファイルを読む
  $img=@imagecreatefrompng("img.png");

  // WebP変換して出力します
  if($img){
    header("Content-Type: image/webp");
    imagewebp($img ,null);
  }

  // 破棄
  imagedestroy($img);

参考

AVIF画像ファイルに変換する場合は
imageavif(GdImageオブジェクト, "保存先ファイル名" 又は null [, 品質0~100] [,スピード0~10] )
を使います。

<?php
  // 「img.jpg」画像ファイルを読む
  $img=@imagecreatefromjpeg("img.jpg");

  // AVIF変換して「img.avif」ファイルに保存します
  if($img){
    imageavif($img, "img.avif");
  }

  // 破棄
  imagedestroy($img);