splitbrain/slika

简单图片缩放

1.0.7 2024-01-28 09:41 UTC

This package is auto-updated.

Last update: 2024-08-29 16:39:48 UTC


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方向标志之一

orientation flags

为了方便起见,已定义了三个常量

  • 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的第二个参数传递。

目前有以下选项可用