人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

PHPだけで画像ファイルをAVIFフォーマットに変換できるか確認する

もし変換できない場合は、サーバに libavif を入れる方が早いと思います。

https://pgmemo.tokyo/data/archives/2511.html

<?php
// GDライブラリの確認
echo "=== GD Library ===<br>\n";
if (extension_loaded('gd')) {
  echo "GD: インストール済み<br>\n";
  echo "AVIF (GD): " . (function_exists('imageavif') ? '✅サポート済み' : '❌未サポート') . "<br>\n";
  $gd_info = gd_info();
  echo "GD Version: " . $gd_info['GD Version'] . "<br>\n";
} else {
  echo "GD: インストールされていません<br>\n";
}

echo "\n=== ImageMagick ===<br>\n";
if (extension_loaded('imagick')) {
  echo "ImageMagick: インストール済み<br>\n";

  $imagick = new Imagick();
  $formats = $imagick->queryFormats();
  echo "AVIF (ImageMagick): " . (in_array('AVIF', $formats) ? '✅サポート済み' : '❌未サポート') . "<br>\n";

  // ImageMagickのバージョン確認
  $version = Imagick::getVersion();
  echo "ImageMagick Version: " . $version['versionString'] . "<br>\n";
} else {
  echo "ImageMagick: インストールされていません<br>\n";
}

echo "\n=== intervention/image での確認 ===<br>\n";

use Intervention\Image\ImageManagerStatic as Image;

// GDドライバーでテスト
try {
  Image::configure(['driver' => 'gd']);
  $img = Image::canvas(10, 10);
  $img->encode('avif');
  echo "intervention/image (GD): AVIF対応<br>\n";
} catch (Exception $e) {
  echo "intervention/image (GD): AVIF未対応 - " . $e->getMessage() . "<br>\n";
}

// ImageMagickドライバーでテスト
try {
  Image::configure(['driver' => 'imagick']);
  $img = Image::canvas(10, 10);
  $img->encode('avif');
  echo "intervention/image (ImageMagick): AVIF対応<br>\n";
} catch (Exception $e) {
  echo "intervention/image (ImageMagick): AVIF未対応 - " . $e->getMessage() . "<br>\n";
}

No.2627
07/31 10:56

edit