anakadote/laravel-5-image-manager

Laravel 图像缩放和裁剪包。

dev-master 2021-12-02 03:07 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:23 UTC


README

已弃用: 该包现已弃用,建议使用 https://github.com/anakadote/ImageManager 进行进一步开发

Laravel 图像缩放和裁剪包

此 Laravel 包提供了缩放和裁剪图像的便捷方式。

首先,通过 Composer 安装此包。编辑项目的 composer.json 文件,以需要 anakadote/laravel-5-image-manager

"require": {
    "anakadote/laravel-5-image-manager": "dev-master"
}

接下来,从终端更新 Composer

composer update

接下来,添加服务提供者。打开 config/app.php 并向 providers 数组添加一个新项。

Anakadote\ImageManager\ImageManagerServiceProvider::class

最后一步是使用 artisan 将包资源移动到公共目录,也来自终端

php artisan vendor:publish --provider="Anakadote\ImageManager\ImageManagerServiceProvider"

用法

此包可通过 Laravel Facade 访问,因此只需在 Facade "ImageManager" 上调用其方法即可。

getImagePath($filename, $width, $height, $mode, $quality = 90)

示例 1:缩放或裁剪图像并获取新生成图像的 Web 路径。

<img src="{{ ImageManager::getImagePath(public_path() . '/img/' . $image->filename, 250, 200, 'crop') }}" alt="">

示例 2:使用 HTML picture 元素显示图像的 webp 版本,如果浏览器支持。

<picture>
    <source srcset="{{ ImageManager::getImagePath(public_path() . '/img/' . $image->filename, 250, 200, 'crop', 90, 'webp') }}" type="image/webp">
    <img src="{{ ImageManager::getImagePath(public_path() . '/img/' . $image->filename, 250, 200, 'crop') }}" alt="">
</picture>

getImagePath() 方法有六个参数,前四个是必需的

  1. 文件名 (字符串) 图像文件的完全限定名。该文件必须位于您的应用 public 目录中。您需要通过 Web 服务器授予对 public 目录及其子目录的写入权限。

  2. 宽度 (整数) 图像所需的宽度。

  3. 高度 (整数) 图像所需的高度。

  4. 输出模式 (字符串) 输出模式。选项包括

  5. 裁剪

  6. fit - 保持宽高比进行适配。

  7. fit-x - 保持宽高比适配给定的宽度。

  8. fit-y - 保持宽高比适配给定的高度。

  9. 图像质量 - (整数,0 - 100) 默认值为 90。

  10. 格式 - (字符串) 将图像转换为给定的格式/扩展名,例如 "webp";

getUniqueFilename($filename, $destination)

在目标目录内生成一个唯一的文件名 —— 使用原始文件名作为新文件名的依据。

<?php

$unique_filename = ImageManager::getUniqueFilename( $filename, public_path() . '/img/' );

getUniqueFilename() 方法有两个参数:原始文件名和目标路径。

deleteImage($filename)

删除一个图像,包括所有由此生成的缩放和/或裁剪图像。

<?php

ImageManager::deleteImage( public_path() . '/img/' . $image->filename );

deleteImage() 方法有一个参数,即原始图像文件的完全限定名。此方法将递归删除从原始图像文件生成的所有图像。