Skip to content

Image ​

创建一个图片

选择扩展 ​

gd ​

php
use Kkokk\Poster\Image\Gd\Image;

imagick ​

php
use Kkokk\Poster\Image\Imagick\Image;

创建图片 ​

php
$path = '图片地址';
$image = new Image($path);

旋转图片 ​

php
$bgColor = [255, 255, 255, 127]; // 旋转后的背景颜色
$image->rotate(90, $bgColor);

设置类型 ​

设置图片类型(当前面已设置类型时,如果要重置类型需要传入 $force = true)

php
$force = true;
$image->setType('jpg', $force = false);

设置质量 ​

jpeg、jpg、webp 可设置图片质量

php
$image->setQuality(100);

获取图片资源 ​

php
$image->getImage();

获取宽度 ​

php
$image->getWidth();

获取高度 ​

php
$image->getHeight();

获取类型 ​

php
$image->getType();

获取图片路径 ​

获取路径和文件名

php
$image->getPath();

获取保存目录名 ​

php
$image->getPathName();

获取保存文件名 ​

php
$image->getFileName();

获取质量 ​

php
$image->getQuality();

保存图片 ​

php
$path = '图片保存路径';
$image->getData($path);

获取图片流 ​

php
// 设置图片类型
$type = 'jpg';
$image->getStream($type);

获取 base64 ​

php
$image->getBaseData();

获取二进制流 ​

php
$image->blob();

保存到临时文件 ​

php
$image->tmp();

设置图片 ​

用于修改原图

php
$image->setData();

缩放(封面) ​

php
$newWidth = 400;  // 新宽度
$newHeight = 400; // 新高度
$bestFit = false; // 是否等比缩放, 默认 false
$image->thumb($newWidth, $newHeight, $bestFit);

缩放(高质量) ​

php
$newWidth = 400;  // 新宽度
$newHeight = 400; // 新高度
$bestFit = false; // 是否等比缩放, 默认 false
$image->scale($newWidth, $newHeight, $bestFit);

剪裁圆形 ​

php
$image->circle();

剪裁矩形 ​

php
$x = 0;      // 剪裁位置x
$y = 0;      // 剪裁位置y
$width = 0;  // 剪裁宽度
$height = 0; // 剪裁高度
$image->crop($x, $y, $width, $height);

透明度 ​

php
$transparent = 50; // 0-127
$image->transparent(transparent);

圆角 ​

php
// [20] 四个角
// [20,30] 第一个值 左上 右下 第二个值 右上 左下
// [20,30,20] 第一个值 左上 第二个值 右上 左下 第三个值 右下
// [20,30,20,10]  左上 右上 右下  左下
$image->borderRadius(10);

应用蒙版(灰度图) ​

php
$mask = '灰度图蒙版路径';
$image->applyMask($mask);

抠图 ​

php
$x1 = 0;     // 抠图位置x
$y1 = 0;     // 抠图位置y
$width = 0;  // 抠图宽度
$height = 0; // 抠图高度
$crossCondition = null; // 抠图判断条件
// 返回抠图 Canvas
$croppedImage = $image->cutout($x1, $y1, $width, $height, $crossCondition);

画多边形 ​

php
$points = [];          // 点坐标
$color = [0, 0, 0, 1]; // 颜色
$thickness = 1;        // 宽度
$image->drawImagePolygon($points, $color, $thickness);

填充多边形 ​

php
$points = [];          // 点坐标
$color = [0, 0, 0, 1]; // 颜色
$image->drawImageFilledPolygon($points, $color);

微不足道,绵薄之力