devfactory/imagecache

Laravel包,用于生成图片缩略图并在您的公共文件目录中缓存它们。

4.0.8 2024-03-18 13:18 UTC

README

Laravel Laravel License

Imagecache

Laravel 4/5 包,允许您根据预定义的预设创建图片缩略图,并将它们存储在Laravel公共文件夹中,以便在页面加载时无需重新生成。

安装

使用Composer,编辑您的composer.json文件以包含devfactory/imagecache

Laravel 5
"require": {
	"devfactory/imagecache": "3.0.*"
}
Laravel 4
"require": {
	"devfactory/imagecache": "2.1.*"
}

然后在终端运行

composer update

然后在您的app/config/app.php文件中注册以下服务提供者

'Intervention\Image\ImageServiceProvider',
'Devfactory\Imagecache\ImagecacheServiceProvider',

以及外观

'Imagecache'      => 'Devfactory\Imagecache\Facades\ImagecacheFacade',

发布配置

Laravel 5
php artisan vendor:publish
Laravel 4
php artisan config:publish devfactory/imagecache

使用方法

Laravel 5

config/imagecache.presets.php

Laravel 4

app/config/packages/devfactory/imagecache/presets.php

<?php

return array(
  'teaser' => array(
    'width' => 150,
    'height' => 100,
    'method' => 'crop',
  ),
  '465x320' => array(
    'width' => 465,
    'height' => 320,
    'method' => 'resize',
    'background_color' => '#FFFFFF',
  ),
);

get($filename, $preset, $args = NULL)

$args 属性

返回值

示例用法

$image = Imagecache::get('images/sunset.jpg', 'teaser');
echo $image->img;
echo '<img src="'. $image->src .'">

// Directly in a blade template
{{ Imagecache::get('uploads/images/sunset.jpg', 'teaser')->img }}

您也可以直接访问其中一个属性,而无需调用get()。如果使用Laravel 5,您需要使用新的原始表示法而不是双大括号{{ ... }}

{!! Imagecache::get('uploads/images/sunset.jpg', 'teaser')->img !!}

如果将imagecache.config.php文件中的use_placeholders变量设置为TRUE,并且您的图片不存在或未生成缓存版本,您将获得与您请求的预设匹配的占位符图片。这在开发期间非常有用,因为您可能没有所有内容的图片。

get_original($filename, $args = NULL)

如果您不想对图像应用任何预设,但仍然想使用调用生成<img>标签,接受相同的参数并以相同的方式工作,就像get()一样,只是没有$preset

delete($filename)

删除给定文件名的每个预设的所有缓存图像。

预设

定义您的预设时,您可以设置以下选项

method属性接受以下类型的转换