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> 图像传递资源。