Img
<br/>
>i 本文档的最新修订日期是:
> **2023-06-03**
# Img ::
对图片进行处理。
# 依赖
本模块依赖于PHP拓展 <font color="#c7254e">`GD2`</font> 。
# 模块配置
配置文件位于 <font color="#c7254e">`/config/core/Img.php`</font> 。
* **<font color="#ff6600">`fontFile`</font>** <font color="#0099ff">`(String)`</font> <font color="#bbbbbb">`'/lib/img_font.ttf'`</font> :
指定字体文件的路径。
>w 框架没有附带字体文件,需要自行添加,字体格式仅限 <font color="#c7254e">`TTF`</font> 。
# 公共参数
* **<font color="#ff6600">`data_type(资源类型)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'path'`</font>:
用以指定图片资源的类型。
当值为 <font color="#c7254e">`path`</font> 时,将会把参数 <font color="#c7254e">`image`</font> 的值作为文件路径,进而读取文件内容。
当值为 <font color="#c7254e">`string`</font> 时,将会把参数 <font color="#c7254e">`image`</font> 的值作为图像数据的字符串表达直接使用。
当值为 <font color="#c7254e">`resource`</font> 时,将会把参数 <font color="#c7254e">`image`</font> 的值作为本模块 <font color="#c7254e">`特有的`</font> 图像传递资源使用,通过该方式可以对一个图像进行多次修改。
* **<font color="#ff6600">`to(目标路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`''`</font>:
用以指定将新的图片存储到何处。
当值为NULL时,将会直接输出图像,图像的MIME类型由参数 <font color="#c7254e">`mime`</font> 控制。
否则,值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的路径,以 <font color="#c7254e">`/`</font> 开始。
当值为目标图像的路径时,<font color="#c7254e">`mime`</font> 参数的值将由文件的后缀名决定,自定义的将被忽略。
仅当参数 <font color="#c7254e">`return_resource`</font> 值为false,或方法中不存在参数 <font color="#c7254e">`return_resource`</font> 时,本参数才会生效。
* **<font color="#ff6600">`quality(质量)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`75`</font>:
用以指定新图像的质量。
值为1-100之间的整数,1为最差质量但体积最小,100为最好质量但体积最大。
>w 仅 <font color="#c7254e">`jpeg`</font> 、<font color="#c7254e">`png`</font> 、<font color="#c7254e">`webp`</font> 类型的图片能够指定图片质量。
>w 由于 <font color="#c7254e">`png`</font> 格式的质量仅有10个等级,因此将会按照给定值的 <font color="#c7254e">`1/10`</font> 进行 <font color="#c7254e">`向下取整`</font> 。
仅当参数 <font color="#c7254e">`return_resource`</font> 值为false,或方法中不存在参数 <font color="#c7254e">`return_resource`</font> 时,本参数才会生效。
* **<font color="#ff6600">`mime(图片格式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'jpeg'`</font>:
用以指定直接输出的新图像的图片格式(MIME)。
仅能在这些值中选择: <font color="#c7254e">`bmp`</font> 、<font color="#c7254e">`gd2`</font> 、<font color="#c7254e">`gd`</font> 、<font color="#c7254e">`gif`</font> 、<font color="#c7254e">`jpeg`</font> 、<font color="#c7254e">`png`</font> 、<font color="#c7254e">`vnd.wap.wbmp`</font> 、<font color="#c7254e">`webp`</font> 、<font color="#c7254e">`xbm`</font> 。
仅当参数 <font color="#c7254e">`to`</font> 值为NULL且参数 <font color="#c7254e">`return_resource`</font> 值为false时,本参数才会生效。
如果方法中不存在参数 <font color="#c7254e">`return_resource`</font> ,则本参数的有效性仅受参数 <font color="#c7254e">`to`</font> 的控制。
* **<font color="#ff6600">`return_resource(返回资源)`</font>** <font color="#0099ff">`(bool)`</font> <font color="#BBBBBB">`false`</font>:
用以指定是否返回本模块 <font color="#c7254e">`特有的`</font> 图像传递资源。
当值为 <font color="#c7254e">`TRUE`</font> 时返回,值为 <font color="#c7254e">`FALSE`</font> 时不返回。
# change()
## 说明
**<font color="#0099ff"><font color="#ff6600">Img</font> :: <font color="#ff6600">change</font> ( <kbd>传参数组</kbd> )</font>**
对图片进行大小缩放、体积压缩或添加水印。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
## 参数
* **<font color="#ff6600">`image(源图片)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定需要处理的图片的 <font color="#c7254e">`路径`</font> 或图像数据的 <font color="#c7254e">`字符串表达`</font> ,如何取值由参数 <font color="#c7254e">`data_type`</font> 决定:
1. 如果取值方式为需要处理的图片的路径,则值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的路径,以“/”开始。
2. 如果取值方式为图像数据的字符串表达,则值为例如用 <font color="#c7254e">`file_get_contents`</font> 函数打开一个图像文件之后的得到的字符串。
3. 如果取值方式为本模块特有的图像传递资源,则值为本模块方法的返回值。
* **<font color="#ff6600">`data_type(资源类型)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'path'`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`to(目标路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`width(宽度)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定将新的图片的宽度(单位为像素)。
当值为NULL时,将会有下面两种情况:
1. 如果参数 <font color="#c7254e">`height`</font> 也为NULL,此时值将受参数 <font color="#c7254e">`scale`</font> 控制,即图像经过指定倍数缩放之后得到的宽度值。
2. 如果参数 <font color="#c7254e">`height`</font> 不为NULL,此时值为源图片参照指定的高度等比缩放后得到的宽度值。
* **<font color="#ff6600">`height(高度)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定将新的图片的高度(单位为像素)。
当值为NULL时,将会有下面两种情况:
1. 如果参数 <font color="#c7254e">`width`</font> 也为NULL,此时值将受参数 <font color="#c7254e">`scale`</font> 控制,即图像经过指定倍数缩放之后得到的高度值。
2. 如果参数 <font color="#c7254e">`width`</font> 不为NULL,此时值为源图片参照指定的宽度等比缩放后得到的高度值。
* **<font color="#ff6600">`scale(缩放)`</font>** <font color="#0099ff">`(Float)`</font> <font color="#BBBBBB">`1.0`</font>:
用以指定新图片的尺寸相对于源图片的尺寸的倍数(即缩放的大小倍数)。
值是一个大于 <font color="#c7254e">`0`</font> 的整数或浮点数。
例如,当值为 <font color="#c7254e">`0.5`</font> 时,代表新图片的尺寸是源图片尺寸的一半;当值为 <font color="#c7254e">`1`</font> 时,代表新图片的尺寸与源图片尺寸相同;当值为 <font color="#c7254e">`2`</font> 时,代表新图片的尺寸是源图片尺寸的两倍。
仅当参数 <font color="#c7254e">`width`</font> 和参数 <font color="#c7254e">`height`</font> 值均为NULL时,本参数才会生效。
* **<font color="#ff6600">`word(文字)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定文字水印的内容。
当值为 <font color="#c7254e">`NULL`</font> 时,将 <font color="#c7254e">`不会`</font> 为图片添加水印。
* **<font color="#ff6600">`word_size(文字大小)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定添加文字的尺寸。
根据 <font color="#c7254e">`GD`</font> 的版本,单位为像素尺寸(GD1)或点(磅)尺寸(GD2)。
默认文字大小为新图片高的0.12倍。
* **<font color="#ff6600">`word_color(文字颜色)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`#333333`</font>:
用以指定添加文字的颜色。
值为颜色的Hex表达式,例如 <font color="#c7254e">`#fa3137`</font> 。
* **<font color="#ff6600">`word_margin_x(文字左边距)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`0`</font>:
用以指定添加文字与新图片左侧边缘的间隔(单位为像素)。
* **<font color="#ff6600">`word_margin_y(文字顶边距)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`0`</font>:
用以指定添加文字基线与新图片顶部边缘的间隔(单位为像素)。
* **<font color="#ff6600">`quality(质量)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`75`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`mime(图片格式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`jpeg`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`return_resource(返回资源)`</font>** <font color="#0099ff">`(bool)`</font> <font color="#BBBBBB">`false`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
## 返回
无或 <font color="#0099ff">`(Array)`</font> 类型。
仅当参数 <font color="#c7254e">`return_resource`</font> 值为true时,才会返回一个数组,该数组为本模块 <font color="#c7254e">`特有的`</font> 图像传递资源。
# merge()
## 说明
**<font color="#0099ff"><font color="#ff6600">Img</font> :: <font color="#ff6600">merge</font> ( <kbd>传参数组</kbd> )</font>**
将两个图像进行合并。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
## 参数
* **<font color="#ff6600">`background(背景)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定需要处理的背景图片的 <font color="#c7254e">`路径`</font> 或图像数据的 <font color="#c7254e">`字符串表达`</font> ,如何取值由参数 <font color="#c7254e">`data_type`</font> 决定:
1. 如果取值方式为需要处理的背景图片的路径,则值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的路径,以“/”开始。
2. 如果取值方式为图像数据的字符串表达,则值为例如用 <font color="#c7254e">`file_get_contents`</font> 函数打开一个图像文件之后的得到的字符串。
3. 如果取值方式为本模块特有的图像传递资源,则值为本模块方法的返回值。
* **<font color="#ff6600">`foreground(前景)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定需要处理的前景图片的 <font color="#c7254e">`路径`</font> 或图像数据的 <font color="#c7254e">`字符串表达`</font> ,如何取值由参数 <font color="#c7254e">`data_type`</font> 决定:
1. 如果取值方式为需要处理的前景图片的路径,则值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的路径,以“/”开始。
2. 如果取值方式为图像数据的字符串表达,则值为例如用 <font color="#c7254e">`file_get_contents`</font> 函数打开一个图像文件之后的得到的字符串。
3. 如果取值方式为本模块特有的图像传递资源,则值为本模块方法的返回值。
* **<font color="#ff6600">`data_type(资源类型)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'path'`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`to(目标路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`scale(缩放)`</font>** <font color="#0099ff">`(Float)`</font> <font color="#BBBBBB">`1.0`</font>:
用以指定前景图片尺寸的缩放倍数。
值是一个大于 <font color="#c7254e">`0`</font> 的整数或浮点数。
例如,当值为 <font color="#c7254e">`0.5`</font> 时,代表将前景图片的尺寸缩小为原来的一半;当值为 <font color="#c7254e">`1`</font> 时,代表不改变前景图片的尺寸;当值为 <font color="#c7254e">`2`</font> 时,代表将前景图片的尺寸放大为原来的两倍。
* **<font color="#ff6600">`image_x(起始X)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`0`</font>:
用以指定前景图像左上角相对于背景图像的X坐标(单位为像素)。
* **<font color="#ff6600">`image_y(起始Y)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`0`</font>:
用以指定前景图像左上角相对于背景图像的Y坐标(单位为像素)。
* **<font color="#ff6600">`quality(质量)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`75`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`mime(图片格式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`jpeg`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`return_resource(返回资源)`</font>** <font color="#0099ff">`(bool)`</font> <font color="#BBBBBB">`false`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
## 返回
无或 <font color="#0099ff">`(Array)`</font> 类型。
仅当参数 <font color="#c7254e">`return_resource`</font> 值为true时,才会返回一个数组,该数组为本模块 <font color="#c7254e">`特有的`</font> 图像传递资源。
# output()
## 说明
**<font color="#0099ff"><font color="#ff6600">Img</font> :: <font color="#ff6600">output</font> ( <kbd>传参数组</kbd> )</font>**
输出图像传递资源。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
## 参数
* **<font color="#ff6600">`resource(资源)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>:
本模块特有的图像传递资源,即本模块方法的返回值。
* **<font color="#ff6600">`to(目标路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`quality(质量)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`75`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`mime(图片格式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`jpeg`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
## 返回
无。
# get()
## 说明
**<font color="#0099ff"><font color="#ff6600">Img</font> :: <font color="#ff6600">get</font> ( <kbd>传参数组</kbd> )</font>**
获取图像传递资源。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
## 参数
* **<font color="#ff6600">`image(源图片)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定需要处理的图片的 <font color="#c7254e">`路径`</font> 或图像数据的 <font color="#c7254e">`字符串表达`</font> ,如何取值由参数 <font color="#c7254e">`data_type`</font> 决定:
1. 如果取值方式为需要处理的图片的路径,则值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的路径,以“/”开始。
2. 如果取值方式为图像数据的字符串表达,则值为例如用 <font color="#c7254e">`file_get_contents`</font> 函数打开一个图像文件之后的得到的字符串。
* **<font color="#ff6600">`data_type(资源类型)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'path'`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
## 返回
<font color="#0099ff">`(Array)`</font> 类型。
返回的数组为本模块 <font color="#c7254e">`特有的`</font> 图像传递资源。