サイトを更新しています。 数日間、レイアウトや翻訳に不具合が出ることがあります。ドキュメントは引き続きご利用いただけます。表示が崩れている場合は、後ほど再読み込みしてください。

ホーム image 3.x サポートされているフォーマット

サポートされているフォーマット

3.x 2026年3月7日

#画像フォーマット

サポートされる画像フォーマットは使用するドライバーによって異なります。Imagick と libvips では、それぞれのライブラリがサポートするすべての形式を読み込み可能で、下に挙げた形式への書き出しが可能です。GD では、下表に示す形式のみ読み書きできます。

出力セクションで異なる画像フォーマットのエンコードについて詳しく説明しています。

フォーマット GD Imagick libvips
JPEG
GIF
Animated GIF
PNG
AVIF
Bitmap
WebP
Animated WebP
TIFF
JPEG 2000
HEIC

注意:すべての画像フォーマットが常に PHP の画像拡張に含まれているわけではありません。たとえば GD ライブラリがインストールされていても JPEG サポートが無効でビルドされている場合や、Imagick に WebP サポートが含まれていない場合があります。

これらの画像フォーマットはさまざまなソースから読み込めます。具体的には次のとおりです:

  • ファイルシステム上のパス
  • 生のバイナリ画像データ
  • Base64 エンコードされた画像データ
  • Data URI スキーム
  • ファイルポインタのリソース
  • SplFileInfo から派生する Illuminate\Http\UploadedFileSymfony\Component\HttpFoundation\File\UploadedFile
  • Intervention Image インスタンス (Intervention\Image\Image)
  • エンコード済みの Intervention Image (Intervention\Image\EncodedImage)
  • ドライバー固有の画像(GDImage または Imagick のインスタンス)

#画像フォーマットのサポート確認

public DriverInterface::supports(string|Format|FileExtension|MediaType $identifier): bool

このメソッドは実行時に特定のフォーマットがサポートされているかどうかを確認するために使えます。指定したフォーマットが現在のドライバーでサポートされているか、また基盤となる拡張が必要なサポートを有してビルドされているかをチェックし、両方が満たされる場合に true を返します。

#パラメータ

Name Type Description
identifier string, Format, FileExtension or MediaType 画像フォーマットの識別子。ファイル拡張子の文字列、メディアタイプの文字列、または enum のメンバーとして渡せます。

#

use Intervention\Image\Drivers\Imagick\Driver as ImagickDriver
use Intervention\Image\Format;
use Intervention\Image\MediaType;
use Intervention\Image\FileExtension;

$manager = ImageManager::withDriver(ImagickDriver::class);

// ドライバーが JPEG 形式をサポートしているかをファイル拡張子で確認する
$result = $manager->driver()->supports('jpg');

// ドライバーが JPEG 形式をサポートしているかをメディアタイプで確認する
$result = $manager->driver()->supports('image/jpeg');

// ドライバーが JPEG 形式をサポートしているかを enum メンバーで確認する
$result = $manager->driver()->supports(Format::JPEG);

// ドライバーが JPEG 形式をサポートしているかを enum メンバーで確認する
$result = $manager->driver()->supports(MediaType::IMAGE_JPEG);

// ドライバーが JPEG 形式をサポートしているかを enum メンバーで確認する
$result = $manager->driver()->supports(FileExtension::JPG);

#カラーフォーマット

このライブラリは、メソッドで色を指定するためのいくつかのフォーマットをサポートしています。

色の入力値は画像の実際のカラースペースと異なる場合があります。そのため、HSV の色指定で CMYK 画像に描画することも可能です。色は自動的にターゲットのカラースペースに変換されます。

#文字列形式

#16進数文字列形式

色は HTML や CSS で一般的に使われる RGB の16進トリプレットとして渡せます。省略表記やフル表記、アルファチャネルあり/なしの形式が使用可能です。先頭の # は省略できます。

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// 赤い背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('b53717');

// 半透明の赤い背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('b5371766');

#RGB 文字列形式

RGB の関数表記の文字列もサポートしています。アルファ値を含める場合は RGBA を使用します。以下の例を参照してください。

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// 半透明の背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('rgba(15, 20, 255, .5)');

// 赤い背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('rgb(255, 0, 0)');

#CMYK 文字列形式

関数表記の CMYK 文字列もサポートしています。

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// 背景色で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('cmyk(100, 100, 55, 60)');

#HSV/HSB 文字列形式

RGB の代替である HSV/HSB 形式の色文字列も渡せます。

use Intervention\Image\ImageManager;

// 半透明の背景で新しい画像を作成する
$image = ImageManager::imagick()->read('example.jpg');

// 色付きピクセルを描画する
$image->drawPixel(120, 200, 'hsv(230, 15, 75)');

#HSL 文字列形式

HSL 色形式の文字列も渡せます。

use Intervention\Image\ImageManager;

// 半透明の背景で新しい画像を作成する
$image = ImageManager::imagick()->read('example.jpg');

// 画像を色で塗りつぶす
$image->fill(120, 200, 'hsl(100, 15, 10)');

#HTML カラー名

Intervention Image は W3C の仕様にある拡張された 140 の HTML カラー名を読み取れます。

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// 半透明の背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('steelblue');

#透過

色として透過を指定する必要がある場合は、キーワード transparent を使えば常に指定できます。

use Intervention\Image\ImageManager;

$manager = ImageManager::gd();
$image = $manager->read('images/example.png');
$image->pad(300, 200, 'transparent');

#カラーオブジェクト

色はオブジェクト形式でも定義できます。現在、各カラースペースごとに別個のカラークラスが用意されています。

#RGB カラーオブジェクト

RGB カラーオブジェクトは、基本チャンネル用の3つのパラメータとオプションのアルファチャンネルパラメータを使用します。アルファチャンネルはデフォルトで完全に不透明です。

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Colors\Rgb\Color;

// 半透明の背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill(new Color(45, 0, 10, .5));

// 赤い背景で新しい画像を作成する
$image = (new ImageManager(Driver::class))->create(300, 200)->fill(new Color(255, 0, 0));

#CMYK カラーオブジェクト

CMYK カラーオブジェクトは、カラースペースの4つのチャンネルに対応する4つのパラメータで構成されます。

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Cmyk\Color;

// 半透明の背景で新しい画像を作成する
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(100, 100, 55, 60));

#HSV/HSB カラーオブジェクト

HSV/HSB カラーオブジェクトのコンストラクタは、色相(Hue)、彩度(Saturation)、明度/輝度(Value/Brightness)の3つのパラメータを受け取ります。

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Hsv\Color;

// 半透明の背景で新しい画像を作成する
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(230, 15, 75));

#HSL カラーオブジェクト

HSL カラーオブジェクトのコンストラクタは、色相(Hue)、彩度(Saturation)、輝度(Luminance)の3つのパラメータを受け取ります。

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Hsl\Color;

// 半透明の背景で新しい画像を作成する
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(230, 15, 75));

#カラースペース

利用可能なカラースペースは主に使用するドライバーによって決まります。Imagick ドライバーは RGB と CMYK の両方をサポートしますが、GD ドライバーは RGB のみをサポートします。新しく作成した画像のデフォルトのカラースペースは RGB です。

Intervention Image で GD ドライバーを使って CMYK 画像を読み込むと、自動的に RGB カラースペースに変換され、色味が変わる可能性があります。

GD ドライバーは CMYK をサポートしていないため、CMYK 画像には使用を推奨しません。

カラースペースの読み取りや変更方法は、メタ情報 のセクションを参照してください。

#色を他のカラースペースやフォーマットに変換する

色は常にサポートされているカラースペースに変換できます。ドライバーが目的のカラースペースをサポートしていなくても変換可能です。

カラーオブジェクトは以下のフォーマットにも変換できます。

  • Intervention\Image\Colors\Rgb\Colorspace
  • Intervention\Image\Colors\Cmyk\Colorspace
  • Intervention\Image\Colors\Hsv\Colorspace
  • Intervention\Image\Colors\Hsl\Colorspace
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Colors\Hsv\Colorspace as HsvColorspace;

// ファイルシステムから RGB 画像を読み込む
$manager = new ImageManager(new Driver());
$image = $manager->read('example.jpg');

// 指定位置のピクセルの色を取得する
$color = $image->pickColor(100, 100);

// 色を HSV 形式に変換する
$color = (string) $color->convertTo(HsvColorspace::class); // 'hsv(220, 10, 65)'