claviska/simpleimage

一个PHP类,可以使图像处理尽可能简单。

资助包维护!
claviska

安装次数: 1,407,290

依赖项: 36

建议者: 0

安全性: 0

星标: 1,380

关注者: 76

分支: 382

公开问题: 20

4.2.0 2024-04-15 16:07 UTC

README

一个PHP类,可以使图像处理尽可能简单。

Cory LaViska 开发和维护。

如果您因为此项目再次爱上了PHP图像处理,请考虑 赞助我 以支持其开发。

概述

<?php
try {
  // Create a new SimpleImage object
  $image = new \claviska\SimpleImage();

  // Magic! ✨
  $image
    ->fromFile('image.jpg')                     // load image.jpg
    ->autoOrient()                              // adjust orientation based on exif data
    ->resize(320, 200)                          // resize to 320x200 pixels
    ->flip('x')                                 // flip horizontally
    ->colorize('DarkBlue')                      // tint dark blue
    ->border('black', 10)                       // add a 10 pixel black border
    ->overlay('watermark.png', 'bottom right')  // add a watermark image
    ->toFile('new-image.png', 'image/png')      // convert to PNG and save a copy to new-image.png
    ->toScreen();                               // output to the screen

  // And much more! 💪
} catch(Exception $err) {
  // Handle errors
  echo $err->getMessage();
}

要求

功能

  • 支持读取、写入和转换GIF、JPEG、PNG、WEBP、BMP、AVIF格式。
  • 读取和写入文件、数据URI和图像字符串。
  • 操作:裁剪、调整大小、叠加/水印、添加TTF文本
  • 绘图:弧线、边框、点、椭圆、线、多边形、矩形、圆角矩形
  • 过滤器:模糊、增亮、着色、对比度、变暗、去饱和、边缘检测、浮雕、反转、不透明度、像素化、棕褐色、锐化、草图
  • 实用工具:颜色调整、变暗/变亮颜色、提取颜色
  • 属性:EXIF数据、高度/宽度、MIME类型、方向
  • 颜色参数可以是任何CSS颜色(例如LightBlue)、十六进制颜色或RGB(A)数组。
  • 支持alpha透明度(GIF、PNG、WEBP、AVIF)
  • 链式方法
  • 使用异常
  • 使用Composer或手动(仅一个文件)加载
  • 语义化版本控制

安装

使用Composer安装

composer require claviska/simpleimage

或手动包含库

<?php
require 'src/claviska/SimpleImage.php';

关于

SimpleImage是由 Cory LaViska 开发和维护的。版权归A Beautiful Site, LLC所有。

如果您喜欢使用SimpleImage,尤其是在商业应用中,请考虑 赞助我 以支持其开发。

谢谢!🙌

许可证

许可协议为 MIT许可证

API

神奇顺序

  1. 加载图像
  2. 操作图像
  3. 保存/输出图像

API技巧

  • 星号表示必需的参数。
  • 返回SimpleImage对象的方法是可链式的。
  • 您可以将文件或数据URI传递给构造函数,以避免调用fromFilefromDataUri
  • 可以使用$image::methodName()\claviska\SimpleImage::methodName()调用静态方法。
  • 颜色可以是CSS颜色(例如white)、十六进制字符串(例如#ffffff)或RGBA数组。
  • 当您传递CSS颜色或十六进制字符串时,可以将透明度传递给normalizeColorwhite|0.25

加载器

fromDataUri($uri)

从数据URI加载图像。

  • $uri* (字符串) - 数据URI。

返回一个SimpleImage对象。

fromFile($file)

从文件加载图像。

  • $file* (字符串) - 要加载的图像文件。

返回一个SimpleImage对象。

fromNew($width, $height, $color)

创建一个新的图像。

  • $width* (整数) - 图像的宽度。
  • $height* (整数) - 图像的高度。
  • $color (字符串|数组) - 新图像的可选填充颜色(默认为'transparent')。

返回一个SimpleImage对象。

fromString($string)

从字符串创建一个新图像。

  • $string * (字符串) - 原始图像数据作为字符串。示例
    $string = file_get_contents('image.jpg');
    

返回一个SimpleImage对象。

保存器

toDataUri($mimeType, $options)

生成数据URI。

  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回包含数据URI的字符串。

toDownload($filename, $mimeType, $options)

强制图像被下载到客户端机器。必须在向屏幕发送任何输出之前调用。

  • $filename * (字符串) - 要发送给客户端的文件名(不带路径)(例如 'image.jpeg')。
  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回一个SimpleImage对象。

toFile($file, $mimeType, $options)

将图像写入文件。

  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回一个SimpleImage对象。

toScreen($mimeType, $options)

将图像输出到屏幕。必须在向屏幕发送任何输出之前调用。

  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回一个SimpleImage对象。

toString($mimeType, $options)

生成图像字符串。

  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回一个SimpleImage对象。

generate($mimeType, $options)

生成图像。

  • $mimeType (字符串) - 输出的图像格式作为MIME类型(默认为原始MIME类型)。
  • $options (数组|int) - 选项数组或图像质量作为百分比(默认100)。

返回一个数组:[mimeType, data]

选项数组

您可以通过关联数组根据目标MIME类型设置各种选项,而不是将质量作为整数作为最后一个函数参数提供。

$image->toFile($file, 'image/avif', [
    // JPG, WEBP, AVIF (default 100)
    'quality' => 100,

    // AVIF (default -1 which is 6)
    // range of slow and small file 0 to 10 fast but big file
    'speed' => -1,
]);
$image->toFile($file, 'image/bmp', [
    // BMP: boolean (default true)
    'compression' => true,

    // BMP, JPG (default null, keep the same)
    'interlace' => null,
]);
$image->toFile($file, 'image/gif', [
    // GIF, PNG (default true)
    'alpha' => true,
]);
$image->toFile($file, 'image/jpeg', [
    // BMP, JPG (default null, keep the same)
    'interlace' => null,

    // JPG, WEBP, AVIF (default 100)
    'quality' => 100,
]);
$image->toFile($file, 'image/png', [
    // GIF, PNG (default true)
    'alpha' => true,

    // PNG: 0-10, defaults to zlib (default 6)
    'compression' => -1,

    // PNG (default -1)
    'filters' => -1,

    // has no effect on PNG images, since the format is lossless
    // 'quality' => 100,
]);
$image->toFile($file, 'image/webp', [
    // JPG, WEBP, AVIF (default 100)
    'quality' => 100,
]);

实用工具

getAspectRatio()

获取图像的当前纵横比。

以浮点数返回纵横比。

getExif()

获取图像的EXIF数据。

返回EXIF数据数组或null(如果没有数据)。

getHeight()

获取图像的当前高度。

以整数形式返回高度。

getMimeType()

获取已加载图像的MIME类型。

返回MIME类型字符串。

getOrientation()

获取图像的当前方向。

返回字符串:'landscape'、'portrait'或'square'。

getResolution()

获取图像当前分辨率为DPI。

返回整数数组:[0 => 96, 1 => 96]

getWidth()

获取图像的当前宽度。

以整数形式返回宽度。

hasImage()

检查SimpleImage对象是否已加载图像。

返回布尔值。

reset()

销毁图像资源。

返回一个SimpleImage对象。

操作

autoOrient()

根据EXIF数据旋转图像,使其方向正确。对于没有EXIF数据的图像,调用此方法是安全的(不会进行任何更改)。返回SimpleImage对象。

bestFit($maxWidth, $maxHeight)

按比例调整图像大小,使其适合特定的宽度和高度。

  • $maxWidth * (int) - 图像的最大宽度。
  • $maxHeight * (int) - 图像的最大高度。

返回一个SimpleImage对象。

crop($x1, $y1, $x2, $y2)

裁剪图像。

  • $x1 - 左上角x坐标。
  • $y1 - 左上角y坐标。
  • $x2 - 右下角x坐标。
  • $y2 - 右下角y坐标。

返回一个SimpleImage对象。

fitToHeight($height) (已弃用)

按比例调整图像大小以适应特定的高度。

此方法在3.2.2版本中已弃用,将在4.0版本中删除。请使用resize(null, $height)代替。

  • $height * (int) - 调整图像大小的目标高度。

返回一个SimpleImage对象。

fitToWidth($width) (已弃用)

按比例调整图像大小以适应特定的宽度。

此方法在3.2.2版本中已弃用,将在4.0版本中删除。请使用resize($width, null)代替。

  • $width * (int) - 调整图像大小的目标宽度。

返回一个SimpleImage对象。

flip($direction)

水平或垂直翻转图像。

  • $direction * (字符串) - 翻转方向:x|y|both

返回一个SimpleImage对象。

maxColors($max, $dither)

将图像减少到最大颜色数。

  • $max * (int) - 要使用的最大颜色数。
  • $dither (bool) - 是否使用抖动效果(默认true)。

返回一个SimpleImage对象。

overlay($overlay, $anchor, $opacity, $xOffset, $yOffset)

在当前图像上方放置一个图像。

  • $overlay *(字符串|SimpleImage)- 要覆盖的图像。可以是文件名、数据URI或SimpleImage对象。
  • $anchor *(字符串)- 锚点:'center'、'top'、'bottom'、'left'、'right'、'top left'、'top right'、'bottom left'、'bottom right'(默认 'center')
  • $opacity *(浮点数)- 覆盖层的透明度级别 0-1(默认 1)。
  • $xOffset *(整数)- 水平偏移量(像素)(默认 0)。
  • $yOffset *(整数)- 垂直偏移量(像素)(默认 0)。
  • $calculateOffsetFromEdge *(布尔值)- 根据图像边缘计算偏移量。在中心锚点时,$xOffset 和 $yOffset 无效。(默认 false)。

返回一个SimpleImage对象。

resize($width, $height)

将图像调整到指定尺寸。如果只指定一个尺寸,图像将按比例调整。

  • $width *(整数)- 新图像宽度。
  • $height *(整数)- 新图像高度。

返回一个SimpleImage对象。

resolution($res_x, $res_y)

更改图像的分辨率(DPI)。

  • $res_x *(整数)- 水平分辨率,以 DPI 为单位。
  • $res_y *(整数)- 垂直分辨率,以 DPI 为单位。

返回一个SimpleImage对象。

rotate($angle, $backgroundColor)

旋转图像。

  • $angle *(整数)- 旋转角度 (-360 - 360)。
  • $backgroundColor *(字符串|数组)- 旋转后未覆盖区域使用的背景颜色(默认 'transparent')。

返回一个SimpleImage对象。

text($text, $options, &$boundary)

向图像添加文本。

  • $text *(字符串)- 要添加的文本。
  • $options *(数组)- 选项数组。
    • fontFile *(字符串)- 要使用的 TrueType(或兼容)字体文件。
    • size *(整数)- 字体大小(像素)(默认 12)。
    • color *(字符串|数组)- 文本颜色(默认黑色)。
    • anchor *(字符串)- 锚点:'center'、'top'、'bottom'、'left'、'right'、'top left'、'top right'、'bottom left'、'bottom right'(默认 'center')。
    • xOffset *(整数)- 水平偏移量(像素)(默认 0)。
    • yOffset *(整数)- 垂直偏移量(像素)(默认 0)。
    • shadow *(数组)- 文本阴影参数。
      • x *(整数)- 水平偏移量(像素)。
      • y *(整数)- 垂直偏移量(像素)。
      • color *(字符串|数组)- 文本阴影颜色。
    • calculateOffsetFromEdge *(布尔值)- 根据图像边缘计算偏移量(默认 false)。
    • baselineAlign *(布尔值)- 将文本字体与基线对齐。 (默认 true)。
  • $boundary *(数组)- 如果传递,则此变量将包含包含文本周围坐标的数组:[x1, y1, x2, y2, width, height]。这可以用于在将文本添加到图像后计算文本的位置。

返回一个SimpleImage对象。

thumbnail($width, $height, $anchor)

创建缩略图图像。此函数尝试将图像调整为尽可能接近提供的尺寸,然后裁剪剩余的溢出部分以强制所需大小。用于生成缩略图图像很有用。

  • $width *(整数)- 缩略图宽度。
  • $height *(整数)- 缩略图高度。
  • $anchor *(字符串)- 锚点:'center'、'top'、'bottom'、'left'、'right'、'top left'、'top right'、'bottom left'、'bottom right'(默认 'center')。

返回一个SimpleImage对象。

绘图

arc($x, $y, $width, $height, $start, $end, $color, $thickness)

绘制圆弧。

  • $x *(整数)- 圆弧中心的 x 坐标。
  • $y *(整数)- 圆弧中心的 y 坐标。
  • $width *(整数)- 圆弧的宽度。
  • $height *(整数)- 圆弧的高度。
  • $start *(整数)- 圆弧的起始角度(度)。
  • $end *(整数)- 圆弧的结束角度(度)。
  • $color *(字符串|数组)- 圆弧颜色。
  • $thickness *(整数|字符串)- 线条粗细(像素)或 'filled'(默认 1)。

返回一个SimpleImage对象。

border($color, $thickness)

在图像周围绘制边框。

  • $color * (字符串|数组) - 边框颜色。
  • $thickness * (整数) - 边框的厚度(默认值1)。

返回一个SimpleImage对象。

dot($x, $y, $color)

绘制单个像素点。

  • $x * (整数) - 点的x坐标。
  • $y * (整数) - 点的y坐标。
  • $color * (字符串|数组) - 点的颜色。

返回一个SimpleImage对象。

ellipse($x, $y, $width, $height, $color, $thickness)

绘制椭圆。

  • $x * (整数) - 椭圆中心的x坐标。
  • $y * (整数) - 椭圆中心的y坐标。
  • $width * (整数) - 椭圆的宽度。
  • $height * (整数) - 椭圆的高度。
  • $color * (字符串|数组) - 椭圆的颜色。
  • $thickness *(整数|字符串)- 线条粗细(像素)或 'filled'(默认 1)。

返回一个SimpleImage对象。

fill($color)

使用纯色填充图像。

  • $color * (字符串|数组) - 填充颜色。

返回一个SimpleImage对象。

line($x1, $y1, $x2, $y2, $color, $thickness)

绘制线条。

  • $x1 * (整数) - 第一个点的x坐标。
  • $y1 * (整数) - 第一个点的y坐标。
  • $x2 * (整数) - 第二个点的x坐标。
  • $y2 * (整数) - 第二个点的y坐标。
  • $color * (字符串|数组) - 线条颜色。
  • $thickness * (整数) - 线条厚度(默认值1)。

返回一个SimpleImage对象。

polygon($vertices, $color, $thickness)

绘制多边形。

  • $vertices * (数组) - 多边形的顶点,以x/y数组的形式。示例
    [
      ['x' => x1, 'y' => y1],
      ['x' => x2, 'y' => y2],
      ['x' => xN, 'y' => yN]
    ]
    
  • $color * (字符串|数组) - 多边形的颜色。
  • $thickness *(整数|字符串)- 线条粗细(像素)或 'filled'(默认 1)。

返回一个SimpleImage对象。

rectangle($x1, $y1, $x2, $y2, $color, $thickness)

绘制矩形。

  • $x1 * (整数) - 左上角的x坐标。
  • $y1 * (整数) - 左上角的y坐标。
  • $x2 * (整数) - 右下角的x坐标。
  • $y2 * (整数) - 右下角的y坐标。
  • $color * (字符串|数组) - 矩形的颜色。
  • $thickness *(整数|字符串)- 线条粗细(像素)或 'filled'(默认 1)。

返回一个SimpleImage对象。

roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $thickness)

绘制圆角矩形。

  • $x1 * (整数) - 左上角的x坐标。
  • $y1 * (整数) - 左上角的y坐标。
  • $x2 * (整数) - 右下角的x坐标。
  • $y2 * (整数) - 右下角的y坐标。
  • $radius * (整数) - 边框的半径(以像素为单位)。
  • $color * (字符串|数组) - 矩形的颜色。
  • $thickness *(整数|字符串)- 线条粗细(像素)或 'filled'(默认 1)。

返回一个SimpleImage对象。

过滤器

blur($type, $passes)

应用模糊过滤器。

  • $type * (字符串) - 要使用的模糊算法:'selective','gaussian'(默认'gaussian')。
  • $passes * (整数) - 应用过滤器次数,增强效果(默认值1)。

返回一个SimpleImage对象。

brighten($percentage)

应用亮度过滤器以使图像变亮。

  • $percentage * (整数) - 使图像变亮的百分比(0 - 100)。

返回一个SimpleImage对象。

colorize($color)

应用着色过滤器。

  • $color * (字符串|数组) - 过滤器的颜色。

返回一个SimpleImage对象。

contrast($percentage)

应用对比度过滤器。

  • $percentage * (整数) - 调整百分比的对比度(-100 - 100)。

返回一个SimpleImage对象。

darken($percentage)

应用亮度过滤器以使图像变暗。

  • $percentage * (整数) - 使图像变暗的百分比(0 - 100)。

返回一个SimpleImage对象。

desaturate()

应用去饱和度(灰度)过滤器。

返回一个SimpleImage对象。

duotone($lightColor, $darkColor)

将图像应用双色调过滤器。

  • $lightColor * (字符串|数组) - 双色调中最亮的颜色。
  • $darkColor * (字符串|数组) - 双色调中最暗的颜色。

返回一个SimpleImage对象。

edgeDetect()

应用边缘检测过滤器。

返回一个SimpleImage对象。

emboss()

应用浮雕过滤器。

返回一个SimpleImage对象。

invert()

反转图像的颜色。

返回一个SimpleImage对象。

opacity()

更改图像的不透明度级别。

  • $opacity * (浮点数) - 所需的不透明度级别(0 - 1)。

返回一个SimpleImage对象。

pixelate($size)

应用马赛克过滤器。

  • $size * (整数) - 块的大小(以像素为单位,默认值10)。

返回一个SimpleImage对象。

sepia()

通过去饱和度和应用棕褐色色调来模拟棕褐色效果。

返回一个SimpleImage对象。

sharpen($amount)

锐化图像。

  • $amount * (整数) - 锐化量(1 - 100,默认值50)。

返回一个SimpleImage对象。

sketch()

应用平均去除过滤器以产生草图效果。

返回一个SimpleImage对象。

颜色实用工具

(静态) adjustColor($color, $red, $green, $blue, $alpha)

通过独立增加/减少红/绿/蓝/alpha值来调整颜色。

  • $color * (字符串|数组) - 要调整的颜色。
  • $red * (整数) - 红色调整值(-255 - 255)。
  • $green * (整数) - 绿色调整值(-255 - 255)。
  • $blue * (整数) - 蓝色调整值(-255 - 255)。
  • $alpha * (浮点数) - 透明度调整值(-1 - 1)。

返回一个 RGBA 颜色数组。

(静态) darkenColor($color, $amount)

使颜色变暗。

  • $color * (字符串|数组) - 要变暗的颜色。
  • $amount * (整数) - 变暗的量(0 - 255)。

返回一个 RGBA 颜色数组。

extractColors($count = 10, $backgroundColor = null)

像人类一样从图像中提取颜色。™ 此方法需要第三方库 \League\ColorExtractor。如果您使用 Composer,它将自动为您安装。

  • $count (整数) - 要提取的最大颜色数(默认 5)。
  • $backgroundColor (字符串|数组) - 默认情况下,任何具有大于零的 alpha 值的像素将被丢弃。这是因为透明颜色不会被感知。例如,完全透明的黑色在白色背景上看起来是白色的。因此,如果您想考虑透明度,您必须指定一个默认的背景颜色。

返回一个 RGBA 颜色数组数组。

getColorAt($x, $y)

获取单个像素的 RGBA 值。

  • $x * (整数) - 像素的水平位置。
  • $y * (整数) - 像素的垂直位置。

返回一个 RGBA 颜色数组,如果 x/y 位置在画布外则返回 false。

(静态) lightenColor($color, $amount)

使颜色变亮。

  • $color * (字符串|数组) - 要变亮的颜色。
  • $amount * (整数) - 变暗的量(0 - 255)。

返回一个 RGBA 颜色数组。

(静态) normalizeColor($color)

将十六进制或数组颜色值规范化为格式良好的 RGBA 数组。

  • $color * (字符串|数组) - CSS 颜色名称、十六进制字符串或数组 [red, green, blue, alpha]。

您可以通过十六进制字符串和颜色名称传递 alpha 透明度。例如

#fff|0.50 <-- 50% 白色 red|0.25 <-- 25% 红色

返回一个数组:[red, green, blue, alpha]

异常

SimpleImage 在出错时抛出标准异常。您应该在代码周围始终使用 try/catch 块来正确处理它们。

<?php
try {
  $image = new \claviska\SimpleImage('image.jpeg')
  // ...
} catch(Exception $err) {
  echo $err->getMessage();
}

要检查特定错误,请将 $err->getCode() 与定义的错误常量进行比较。

<?php
try {
  $image = new \claviska\SimpleImage('image.jpeg')
  // ...
} catch(Exception $err) {
  if($err->getCode() === $image::ERR_FILE_NOT_FOUND) {
    echo 'File not found!';
  } else {
    echo $err->getMessage();
  }
}

作为最佳实践,始终使用定义的常量而不是它们的整数值。这些值可能会在未来版本中更改,并且不会被视为破坏性更改。

  • ERR_FILE_NOT_FOUND - 由于某些原因找不到或加载指定的文件。
  • ERR_FONT_FILE - 无法加载指定的字体文件。
  • ERR_FREETYPE_NOT_ENABLED - Freetype 支持未在您的 PHP 版本中启用。
  • ERR_GD_NOT_ENABLED - GD 扩展未在您的 PHP 版本中启用。
  • ERR_LIB_NOT_LOADED - 未加载所需的库。
  • ERR_INVALID_COLOR - 作为参数传递了无效的颜色值。
  • ERR_INVALID_DATA_URI - 指定的数据 URI 无效。
  • ERR_INVALID_IMAGE - 指定的图像无效。
  • ERR_UNSUPPORTED_FORMAT - 指定的图像格式无效。
  • ERR_WEBP_NOT_ENABLED - WEBP 支持未在您的 PHP 版本中启用。
  • ERR_WRITE - 无法写入文件系统。
  • ERR_INVALID_FLAG - 指定的标志键不存在。

需要了解的有用信息

  • 颜色参数可以是 CSS 颜色名称(例如 LightBlue)、十六进制颜色字符串(例如 #0099dd)或 RGB(A) 数组(例如 ['red' => 255, 'green' => 0, 'blue' => 0, 'alpha' => 1])。

  • $thickness 大于 1 时,GD 从中心起点绘制所需厚度的线条。例如,在 [10, 10, 20, 20] 位置绘制厚度为 3 的矩形,实际上会绘制在 [9, 9, 21, 21]。这对于所有形状都适用,这不是 SimpleImage 库的 bug。

实例标志

使用 setFlag($key, $value) 方法设置实例标志值,以调整 SimpleImage 实例的行为。

$image = new \claviska\SimpleImage('image.jpeg')->setFlag("foo", "bar");

您还可以将关联数组传递给 SimpleImage 构造函数来设置实例标志。

$image = new \claviska\SimpleImage('image.jpeg', ['foo' => 'bar']);
// .. or without an $image
$image = new \claviska\SimpleImage(flags: ['foo' => 'bar']);

注意:如果键不存在(没有默认值),setFlag() 会抛出 ERR_INVALID_FLAG 异常。

sslVerify

sslVerify 设置为 false(默认为 true)将使所有通过 HTTPS 加载的图像放弃证书对等验证。这对于自签名证书特别有用。

$image = new \claviska\SimpleImage('https://localhost/image.jpeg', ['sslVerify' => false]);
// Would normally throw an OpenSSL exception, but is ignored with the sslVerify flag set to false.

与 SimpleImage 2.x 的区别

  • 标准化颜色参数(颜色可以是 CSS 颜色名称、十六进制颜色或 RGB(A) 数组)。
  • 标准化 Alpha(不透明度)参数:0(透明)- 1(不透明)
  • text 方法中添加了文本阴影。
  • 添加了 fromString() 方法,可以从字符串中加载图像。
  • 添加了 toString() 方法,可以生成图像字符串。
  • 添加了 arc 方法,用于绘制弧线。
  • 添加了 border 方法,用于绘制边框。
  • 添加了 dot 方法,用于绘制单个像素。
  • 添加了 ellipse 方法,用于绘制椭圆和圆形。
  • 添加了 line 方法,用于绘制线条。
  • 添加了 polygon 方法,用于绘制多边形。
  • 添加了 rectangle 方法,用于绘制矩形。
  • 添加了 roundedRectangle 方法,用于绘制圆角矩形。
  • 添加了 adjustColor 方法,用于修改 RGBA 颜色通道以创建相对颜色变化。
  • 添加了 darkenColor 方法,用于变暗颜色。
  • 添加了 extractColors 方法,用于从图像中获取最常见颜色。
  • 添加了 getColorAt 方法,用于获取特定像素的 RGBA 值。
  • 添加了 lightenColor 方法,用于变亮颜色。
  • 添加了 toDownload 方法,用于强制图像在客户端机器上下载。
  • 添加了 duotone 滤镜,用于创建双色调图像。
  • 添加了 sharpen 方法,用于锐化图像。
  • 将命名空间从 abeautifulsite 更改为 claviska
  • create 方法更改为 fromNew
  • load 方法更改为 fromFile
  • load_base64 方法更改为 fromDataUri
  • output 方法更改为 toScreen
  • output_base64 方法更改为 toDataUri
  • save 方法更改为 toFile
  • text 方法更改为接受选项数组而不是大量参数。
  • text 方法中删除了文本描边,因为它会产生脏结果,并且不支持透明度。
  • 删除了 smooth 方法,因为 PHP 手册中其参数的文档不好。
  • 删除了已弃用的方法 adaptive_resize(请使用 thumbnail 代替)。
  • 删除了 get_meta_data(请使用 getExifgetHeightgetMimegetOrientationgetWidth 代替)。
  • 添加了 .editorconfig 文件。请在提交贡献之前确保您的编辑器支持这些设置。
  • 将缩进从四个空格更改为两个(对不起 PHP-FIG!)。
  • underscore_methods 更改为 camelCaseMethods
  • 根据功能将方法分组。
  • 删除了 PHPDoc 注释。目前,我不想将它们纳入库中。