安阳网站建设方案,免费php网站开发模板,佛山做优化的网络公司,网站建设必知只要两行代码#xff0c;就能实现类似对象存储云提供的基于参数的图片处理#xff0c;比如裁剪、放大、水印、旋转等等。
我们经常使用第三方的对象存储服务#xff0c;比如七牛云或阿里云#xff0c;他们都提供了“智能媒体服务”#xff0c;其实就是在链接上加上各种参…只要两行代码就能实现类似对象存储云提供的基于参数的图片处理比如裁剪、放大、水印、旋转等等。
我们经常使用第三方的对象存储服务比如七牛云或阿里云他们都提供了“智能媒体服务”其实就是在链接上加上各种参数实现图片的裁剪、缩放等可以便捷的实现缩略图节省网络宽带加快页面的访问。
原理很简单就是接收参数然后处理呗。如果用PHP做的话不难但是却要写好多代码。操作GD库太麻烦了。但现在只要两行代码就能实现一套强大的图片处理功能。
// 实例化
$server League\Glide\ServerFactory::create([source path/to/source/folder,cache path/to/cache/folder,
]);// 可以在第二个参数传入数组
$server-outputImage(users/1.jpg, [w 300, h 400]);// 更简单的做法直接传入GET参数
$server-outputImage($path, $_GET);功能预览表
glide可以接收26个参数几乎可以涵盖所有的场景需求。
名称功能参数介绍方向or旋转图像支持0, 90, 180或者 270同时支持auto会根据图片的Exif 信息自动确定位置翻转flip翻转图像支持水平、垂直、圆心等裁剪crop将图像裁剪到指定尺寸支持居中、左上角、居左等10多个设置宽度w设置图像的宽度根据fit参数表现不同高度h设置图像的高度根据fit参数表现不同尺寸效果fit设置图像如何适应新的尺寸显示最大宽度、最小宽度、变形、裁剪等等6中效果设备像素比dpr通过此参数可以生成不同像素比的图片在苹果和安卓设备中有更好的表现最大8亮度bri调整图像亮度对比度con调整图像对比度伽马gam调整图像伽马值值锐化sharp锐化图像模糊blur为图像增加模糊效果像素化pixel为图像增加像素化效果滤镜filt能够指定使用那些滤镜处理图像内置灰度和褐色可以自定义。水印路径mark给图像增加水印水印宽度markw设置水印的宽度水印高度markh设置水印的高度水印偏移量Xmarkx水印的X偏移量水印偏移量Ymarky水印的Y偏移量水印的填充markpad水印的填充padding水印的定位markpos水印的位置居左、居中等水印的透明度markalpha设置水印的透明度背景bg设置图片的背景色边框border给图片增加边框质量q设置输入的质量格式fm设置图像的编码格式jpg、png等
功能介绍
本文对几个重点的功能做个介绍。
尺寸效果 fit
设置图像如何适应新的尺寸。
支持的参数
contain 默认。 调整图像大小以适应宽度和高度边界而无需裁剪、扭曲或改变纵横比。max调整图像大小以适应宽度和高度边界而不会裁剪、扭曲或改变纵横比如果图像小于输出尺寸也不会增加图像的尺寸。fill调整图像大小以适应宽度和高度边界而不裁剪或扭曲图像剩余空间用背景色填充。 生成的图像将匹配约束尺寸。fill-max调整图像大小以适应宽度和高度边界而不裁剪但如果图像较小则放大图像。 完成的图像将在宽度或高度上具有剩余空间除非新图像的纵横比与旧图像的纵横比相同。 剩余空间将用背景色填充。 生成的图像将匹配约束尺寸。stretch拉伸图像以完全适合约束尺寸。 生成的图像将填充尺寸并且不会保持输入图像的纵横比。crop调整图像大小以填充宽度和高度边界并裁剪任何多余的图像数据。 生成的图像将匹配宽度和高度限制而不会扭曲图像。
裁剪 crop
当尺寸效果设置为裁剪时可以使用裁剪参数。
裁剪位置
您还可以通过添加裁剪位置来设置裁剪图像的位置。 接受 crop-top-left, crop-top, crop-top-right, crop-left, crop-center, crop-right, crop-bottom-left, crop-bottom或者 crop-bottom-right. 默认是 crop-center, 并且与 crop.
作物焦点
除了裁剪位置之外您还可以使用焦点更具体地确定确切的裁剪位置。 这是使用两个偏移百分比定义的 crop-x%-y%.
img srckayaks.jpg?w300h300fitcrop-25-75您还可以选择通过提供第三个值来放大您的焦点一个介于 1 和 100 之间的浮点数。每个完整步长相当于 100% 缩放。 例如。 x%-y%-2相当于以 200% 的比例查看图像。 建议的范围是 1-10。
img srckayaks.jpg?w300h300fitcrop-25-75-2预裁剪
在任何其他调整大小操作之前将图像裁剪为特定尺寸。 要求的格式 width,height,x,y. 就像使用截图工具那样在先在图片上截取一段。
img srckayaks.jpg?crop100,100,915,155存储驱动
可以使用flysystem驱动这意味着不仅可以操作本地的文件还支持各类存储方式比如SFTP、FTP、对象存储等等。
// 图片地址
$source new League\Flysystem\Filesystem(new League\Flysystem\Local\LocalFilesystemAdapter(path/to/source/folder)
);// 缓存地址
$cache new League\Flysystem\Filesystem(new League\Flysystem\Local\LocalFilesystemAdapter(path/to/cache/folder)
);$server new League\Glide\Server($source,$cache,
);标准返回Response
可以通过getImageResponse方法获取标准的PSR-7响应对象同时官方提供了laravel等框架的扩展响应对象。
默认配置
可以设置默认的图片处理设置。
$server League\Glide\ServerFactory::create([defaults [mark logo.png,markw 30w,markpad 5w,]
]);预设
可以提前将各种参数设置好然后直接传入预设的名称即可。比如下面的代码
?php$server League\Glide\ServerFactory::create([presets [small [w 200,h 200,fit crop,],medium [w 600,h 400,fit crop,]]
]);然后直接使用预设就可以了
img srckayaks.jpg?psmall也可以同时使用多个预设
img srckayaks.jpg?psmall,watermarked甚至可以使用带有附加参数的预设
img srckayaks.jpg?psmall,watermarkedfiltsepia图像驱动
支持GD库和Imagick库。
$server League\Glide\ServerFactory::create([// 默认使用GDdriver gd,// 使用ImageMagickdriver imagick,
]);安装
使用compsoer安装即可。
composer require league/glide安全保护
glide提供了一套签名机制通过私钥一长串字符生成一个token只有携带了这个token 才能调用参数避免人们通过大量的图像调整参数攻击服务器。
配置
?phpuse League\Glide\Signatures\SignatureFactory;
use League\Glide\Signatures\SignatureException;try {// 设置秘钥$signkey v-LK4WCdhcfcc%jt*VC2cj%nVpuxQKvLUA%H86kRVk_4bgG8CWM#k*b_7MUJpmTc4GFmKFp7K%67je-skxC5vzr#xT?62tT?Aw%FtQ4Y3gvnwHTwqhxUh89wCa_;// 验证访问SignatureFactory::create($signkey)-validateRequest($path, $_GET);} catch (SignatureException $e) {// 处理异常
}生成URL
?phpuse League\Glide\Urls\UrlBuilderFactory;// 上面的那个秘钥
$signkey v-LK4WCdhcfcc%jt*VC2cj%nVpuxQKvLUA%H86kRVk_4bgG8CWM#k*b_7MUJpmTc4GFmKFp7K%67je-skxC5vzr#xT?62tT?Aw%FtQ4Y3gvnwHTwqhxUh89wCa_;// 实例化
$urlBuilder UrlBuilderFactory::create(/img/, $signkey);// 生成url
$url $urlBuilder-getUrl(cat.jpg, [w 500]);// 使用url
echo img src.$url.;// 输入预览
img src/img/cat.jpg?w500saf3dc18fc6bfb2afb521e587c348b904
总结
只要简单的几行代码就实现了一套健全的图片处理HTTP服务当你有类似的需求的时候抓紧用上吧。 原文标题[league/glide]两行代码实现一套强大的图片处理HTTP服务 原文地址https://phpreturn.com/index/a64084605c3759.html 原文平台PHP武器库 版权声明本文由phpreturn.comPHP武器库官网原创和首发所有权利归phpreturnPHP武器库所有本站允许任何形式的转载/引用文章但必须同时注明出处。