Github每日精选(第19期):PHP 图像处理Intervention Image

发布于:2023-01-22 ⋅ 阅读:(477) ⋅ 点赞:(0)

Intervention Image

Intervention Image 是一个PHP 图像处理和操作库,提供了一种更简单、更有表现力的方式来创建、编辑和组合图像。该软件包包括 ServiceProvidersFacades 以便于Laravel集成。

Intervention Imagegithub上的地址在这里

在这里插入图片描述
Intervention Image 是一个开源的PHP 图像处理和操作库。它提供了一种创建、编辑和合成图像的更简单和富有表现力的方式,并支持当前最常见的两个图像处理库GD LibraryImagick

编写该类是为了使 PHP 图像操作更容易和更具表现力。无论您是要创建图像缩略图、水印还是格式化大图像文件,Intervention Image 都能帮助您以尽可能少的代码行轻松管理每项任务。

系统要求

Intervention Image 需要以下组件才能正常工作。

  • PHP >= 5.4
  • 文件信息扩展

以及以下图像库之一。

  • GD 库 (>=2.0) …或…
  • 想象一下 PHP 扩展 (>=6.5.7)

安装

安装 Intervention Image 的最佳方式是使用Composer快速轻松地安装。

要安装最新版本,请运行以下命令。

$ php composer.phar require intervention/image

现在你composer.json已经自动更新了,你可以要求刚刚创建的vendor/autoload.php文件来 PSR-4 自动加载库。

下一步是决定是否要将 Intervention Image 集成到Laravel 框架中。如果您想在 Laravel 中使用该库,只需跳过以下步骤并继续Laravel 集成的描述。

用法

Intervention Image 根本不需要 Laravel 或任何其他框架。如果你想按原样使用它,你只需要要求作曲家自动加载文件来实例化图像对象,如下例所示。

例子
// include composer autoload
require 'vendor/autoload.php';

// import the Intervention Image Manager Class
use Intervention\Image\ImageManager;

// create an image manager instance with favored driver
$manager = new ImageManager(['driver' => 'imagick']);

// to finally create image instances
$image = $manager->make('public/foo.jpg')->resize(300, 200);

您也可以使用 ImageManager 的静态版本,如下例所示。

静态示例
// include composer autoload
require 'vendor/autoload.php';

// import the Intervention Image Manager Class
use Intervention\Image\ImageManagerStatic as Image;

// configure with favored image driver (gd by default)
Image::configure(['driver' => 'imagick']);

// and you are ready to go ...
$image = Image::make('public/foo.jpg')->resize(300, 200);

Laravel 中的集成

Intervention Image 有对Laravel的可选支持,并带有一个服务提供者和 Facades以便于集成。包含在vendor/autoload.phpLaravel 中,因此您不必手动要求或自动加载。请参阅下面的说明。

安装 Intervention Image 后,打开 Laravel 配置文件config/app.php并添加以下行。

$providers数组中添加此包的服务提供者。

Intervention\Image\ImageServiceProvider::class

将此包的外观添加到$aliases数组中。

'Image' => Intervention\Image\Facades\Image::class

现在图像类将由Laravel自动加载。

配置

默认情况下,Intervention Image 使用 PHP 的 GD 库扩展来处理所有图像。如果您想切换到 Imagick,您可以通过运行以下 artisan 命令之一将配置文件拉入您的应用程序。

在 Laravel 中发布配置
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
在 Laravel <= 4 中发布配置
$ php artisan config:publish intervention/image

在最近的Laravel应用程序中,配置文件被复制到config/image.php,在较旧的 Laravel 4 应用程序中,您可以在app/config/packages/intervention/image/config.php. 使用此副本,您可以在本地更改应用程序的映像驱动程序设置。

例子
// usage inside a laravel route
Route::get('/', function() {
    $img = Image::make('foo.jpg')->resize(300, 200);
    return $img->response('jpg');
});