splitbrain / slika
简单图片缩放
1.0.7
2024-01-28 09:41 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^8.0
Suggests
- ext-gd: PHP's builtin image manipulation library. Alternatively use an installation of ImageMagick
README
这是一个仅涵盖处理图片时所需的基本功能的库
- 缩放
- 裁剪
- 旋转
它可以使用PHP的libGD或本地安装的ImageMagick二进制文件。
安装
使用composer
composer require splitbrain/slika
使用方法
简单地从Slika工厂获取一个适配器,对其进行一些操作,然后调用save
。
操作可以串联在一起。将链视为一个命令。不要重复使用run()
返回的适配器,它是一个单次使用的对象。所有操作都可能抛出\splitbrain\slika\Exception
。
选项(见下文)可以作为run
工厂的第二个参数传递。
use \splitbrain\slika\Slika; use \splitbrain\slika\Exception; $options = [ 'quality' => 75 ]; try { Slika::run('input.png', $options) ->resize(500,500) ->rotate(Slika::ROTATE_CCW ->save('output.jpg', 'jpg'); } catch (Exception $e) { // conversion went wrong, handle it }
请参阅API文档以获取详细信息。
操作
缩放
所有缩放操作都将保持图片的原始宽高比。不会有扭曲。
保持宽度或高度为零将自动为您计算值。
# fit the image into a bounding box of 500x500 pixels Slika::run('input.jpg')->resize(500,500)->save('output.png', 'png'); # adjust the image to a maximum width of 500 pixels Slika::run('input.jpg')->resize(500,0)->save('output.png', 'png'); # adjust the image to a maximum height of 500 pixels Slika::run('input.jpg')->resize(0,500)->save('output.png', 'png');
裁剪
与缩放类似,但这次图片将被裁剪以适应新的宽高比。
Slika::run('input.jpg')->crop(500,500)->save('output.png', 'png');
旋转
旋转图片。传入的参数是EXIF方向标志之一
为了方便起见,已定义了三个常量
Slika::ROTATE_CCW
逆时针旋转Slika::ROTATE_CW
顺时针旋转Slika::ROTATE_TOPDOWN
180度旋转
Slika::run('input.jpg')->rotate(Slika::ROTATE_CW)->save('output.png', 'png');
自动旋转
如果找到,将根据EXIF旋转标签旋转图片。
Slika::run('input.jpg')->autorotate()->save('output.png', 'png');
选项
选项可以作为关联数组作为Slika::run
的第二个参数传递。
目前有以下选项可用