Laravel 图片缩略图

Laravel Thumbnail

相关链接

https://github.com/rolandstarke/laravel-thumbnail
https://rolandstarke.github.io/laravel-thumbnail/

安装

composer require rolandstarke/laravel-thumbnail

配置

php artisan vendor:publish --tag=thumbnail-config

允许目录示例

'allowedSources' => [
        'a' => app_path(),
        'r' => resource_path(),
        'p' => public_path(),
        's' => storage_path(),
        'http' => 'http://', //allow images to be loaded from http
        'https' => 'https://',
        'ld' => ['disk' => 'local', 'path' => '/'], //allow images to be loaded from `Storage::disk('local')`
        'pd' => ['disk' => 'public', 'path' => '/'],
        'images' => ['disk' => 'public', 'path' => 'images'] //这个是新增项,目录是storage/app/public/images
],

预设示例

'presets' => [
        'default' => [
            'destination' => ['disk' => 'public', 'path' => '/thumbnails/default/'],
            'widen' => '750', //750宽,高度等比自适应
            'format' => 'jpg', //格式
            'quality' => '90', //质量
        ],
       'small' => [
            'destination' => ['disk' => 'public', 'path' => '/thumbnails/small/'],
            'heighten' => '750', //750高,宽度等比自适应
            'format' => 'png', //格式
        ],
    ],

注意

需要php扩展 GD Library 或 Imagick

使用

use Rolandstarke\Thumbnail\Facades\Thumbnail; // 引用

Thumbnail::src(public_path('images/example.jpg')); // 使用入口public目录中图片

Thumbnail::src('http://test.test/example.jpg'); // 使用网络图片

Thumbnail::src('example.jpg',  'public'); 
// 使用storage图片 Storage::disk('public'),注意需要在配置的allowedSources中增加允许项
// 例如使用地址为pics/fulfills/1.jpg,图片目录为storage/app/public/pics中的图片,需要配置
// 'pics' => ['disk' => 'public', 'path' => 'pics']
// 解释:其中src的第二个参数会对应pics数组disk项,然后插件用pics数组path项去匹配图片的地址`startsWith`

Thumbnail::preset('avatar')->src('example.jpg',  'public'); // 使用预设配置

Thumbnail::src('example.jpg',  'public')->save(); // 保存图片

Thumbnail::src('example.jpg',  'public')->url() // 获取图片链接

Thumbnail::src('example.jpg',  'public')->url(true) //获取图片链接,它会先判断是否有图,没图会先保存图再返回链接
superbad.cn