#新機能
Intervention Image 3 は根本から書き直され、前バージョンからほとんどコードが引き継がれていません。これは、PHP 8+ のモダンな機能を活用した、よりモダンで洗練されたアーキテクチャと API を意味します。ライブラリをさらに改善するいくつかの主要な機能があります。
- GD と Imagick ドライバーでのアニメーション GIF のサポート
- 設定可能なイメージマネージャー
- カラースペースのサポート
- フォントシステムでのテキスト折り返しのサポート
- フォントシステムでの行間のサポート
- エンコード済み画像のオブジェクト
#API の変更点
- canvas() は現在 create() で扱われます
- circle() は現在 drawCircle() で扱われます
- crop() は引き続き存在しますが、新しい シグネチャ を持ちます
- ellipse() は現在 drawEllipse() で扱われます
- line() は drawLine() に置き換えられました
- pixel() は drawPixel() で扱われます
- encode() は引き続き存在しますが、新しい シグネチャ を持ちます
- exif() は現在 exif() で扱われますが、シグネチャが異なります
- fill() は現状カラー値のみをサポートします
- filter() は現在 modify() で扱われます
- flip() は引き続き存在しますが、新しいシグネチャになり、flip() と flop() で処理されます
- insert() は place() に置き換えられました
- make() は read() に置き換えられました
- mime() は現在 エンコード済み画像 のみで扱われます
- pickColor() はフォーマットを含まない異なるシグネチャになり、カラークラス で扱われます
- polygon() は drawPolygon() で扱われます
- rectangle() は drawRectangle() で扱われます
- text() は引き続き存在しますが、新しい シグネチャ を持ちます
- resizeCanvas() は引き続き存在しますが、新しい シグネチャ を持ちます
- limitColors() は reduceColors で処理されます
- trim() はバージョン
3.6で導入されましたが動作が異なり、色が似ている画像の境界領域を 自動的に削除します - getCore() は core() に置き換えられましたが、挙動はまったく異なります
- orientate() は orient() で扱われ、デフォルトでは自動的に適用されます(設定可能)
- resize() は引き続き存在しますが、コールバックのない異なるシグネチャになりました。制約オプションの組み合わせは以下の別メソッドで異なる方法で扱われます: resizeDown(), scale() および scaleDown()
- widen() と heighten() は、名前付き引数を用いて scale() と scaleDown() を呼び出す形に置き換えられます
- fit() は cover() と coverDown() に置き換えられました
#削除された機能
- interlace() はもはや存在せず、代わりに エンコーダーオプション で扱います。
- backup() と reset() はもはや存在しませんが、機能は ネイティブなオブジェクトクローニング で実現できます
- basepath() はもはや存在しません
- cache() はもはや存在しません
- filesize() はもはや存在しません
- iptc() はもはや存在しません
- mask() はもはや存在しません
- opacity() はもはや存在しません
- psrResponse() はもはや存在しません
- response() はもはや存在しません
- stream() はもはや存在しませんが、代わりに toFilePointer() を使用できます
- destroy() はもはや存在しませんが、メモリ解放には PHP の関数(例: unset)を使用できます
#その他の変更
-
Intervention Image 2 の キャッシュライブラリ は新バージョンではサポートされていません。
-
Laravel フレームワーク向けのサービスプロバイダは、フレームワークへの依存を避け、Intervention Image が常に持っていたフレームワーク非依存性を明確にするために削除されました。ただし、Laravel 統合の公式パッケージ が提供されています。
-
URI から直接画像を作成することはできなくなりました。データはまず専用の HTTP クライアントで読み込んでから画像ライブラリに渡す必要があります。Intervention Image は HTTP クライアントの操作を担当しません。
-
色の値を配列として渡すことはできなくなりました。
-
Laravel を使用しており設定ファイルを使っている場合、
driver設定オプションを調整する必要があります。バージョン 2 ではドライバーはgdやimagickのような文字列で設定していましたが、バージョン 3 ではIntervention\Image\Drivers\Imagick\DriverやIntervention\Image\Drivers\Gd\Driverのようにドライバーのクラス名で指定します。詳細は 設定に関する追加情報 および Laravel 統合 を参照してください。