anakadote / laravel-5-image-manager
Laravel 图像缩放和裁剪包。
Requires
- php: >=5.4.0
- illuminate/support: >=5.0
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() 方法有六个参数,前四个是必需的
-
文件名 (字符串) 图像文件的完全限定名。该文件必须位于您的应用
public
目录中。您需要通过 Web 服务器授予对public
目录及其子目录的写入权限。 -
宽度 (整数) 图像所需的宽度。
-
高度 (整数) 图像所需的高度。
-
输出模式 (字符串) 输出模式。选项包括
-
裁剪
-
fit - 保持宽高比进行适配。
-
fit-x - 保持宽高比适配给定的宽度。
-
fit-y - 保持宽高比适配给定的高度。
-
图像质量 - (整数,0 - 100) 默认值为 90。
-
格式 - (字符串) 将图像转换为给定的格式/扩展名,例如 "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() 方法有一个参数,即原始图像文件的完全限定名。此方法将递归删除从原始图像文件生成的所有图像。