flipbox/image-controller

laravel 的图片控制器

0.0.4 2017-03-23 03:50 UTC

This package is auto-updated.

Last update: 2024-08-29 04:25:29 UTC


README

使用简单的方式通过大小、质量和扩展名控制客户端请求的图片。您无需再创建多个大小的图片,此包已处理所需大小的请求图片。

特性

  • 动态图片请求文件
  • 控制图片大小
  • 控制图片质量
  • 控制图片扩展名
  • 缓存图片

要求

  • php >= 5.6.4
  • laravel/framework 5.3.*
  • intervention/image ^2.3
  • intervention/imagecache ^2.3

安装

使用 composer 需求此包

composer require flipbox/image-controller

将 ServiceProvider 添加到 config/app.php 中的 providers 数组

Flipbox\ImageController\ImageControllerServiceProvider::class,

将此包的 facade 添加到 config/app.php 中的 $aliases 数组

'ImageController' => Flipbox\ImageController\Facade::class

使用发布命令将包资源复制到您的应用程序中

php artisan vendor:publish

您的图片现在可以控制了 :-)

使用此包

为了避免请求冲突,我们建议您将一些代码添加到 public laravel 文件夹中的 .htaccess 文件末尾

RewriteRule .*\.(jpg|png|gif|tif|bmp)$ index.php [NC,L]

在您的 public 文件夹中创建一个名为 images 的文件夹(您可以在配置文件中更改文件夹名称),并将图片放在该文件夹中,例如,您将文件名为 photo.jpg 的图片放在该文件夹中,您可以通过以下方式访问您的照片:http://localhost/images/photo.jpg

按大小请求

现在您可以使用指定的大小(thumbnailsmallmediumlarge)请求图片

http://localhost/images/photo.jpg?size=thumbnail 默认宽度 100px
http://localhost/images/photo.jpg?size=small 默认宽度 240px
http://localhost/images/photo.jpg?size=medium 默认宽度 500px
http://localhost/images/photo.jpg?size=large 默认宽度 1024px

按指定宽度或高度请求

您还可以按指定宽度或高度请求图片,甚至两者都指定
http://localhost/images/photo.jpg?width=320 自动高度
http://localhost/images/photo.jpg?height=320 自动宽度
http://localhost/images/photo.jpg?width=100&height=320 固定宽度和高度

按其他扩展名请求

实际文件扩展名将被忽略,现在您可以使用配置中定义的扩展名或甚至没有扩展名来访问您的图片文件
http://localhost/images/photo 默认有效
http://localhost/images/photo.jpg 默认有效
http://localhost/images/photo.png 默认有效
http://localhost/images/photo.gif 默认有效

上传的文件

我们提供了上传文件,使文件上传变得非常简单。第一个参数是 UploadedFileBase64 编码,第二个参数是 directory/prefix.

ImageController::upload($request->file, 'profile');

此方法将返回生成的文件名字符串 str_random(34)

模型评估器

添加 模型访问器 以生成图片链接。

	/**
	 * Get ProfilePicture.
	 *
	 * @param  string  $value
	 * @return string
	 */
	public function getProfilePictureAttribute($value)
	{
		return ImageController::generateImageUrl($value, 'small');
	}

待办事项

  • 添加水印
  • 测试