使用(Usage)
1. 图像处理参数
- 斜线
/隔开,区分不同的操作; - 逗号
,隔开,区分操作中不同的参数; - 下划线
_隔开,key_value的形式,区分参数的Key和Value; value是复杂参数时,需要进行base64url_encode,是否需要encode查看文档参数详细说明;
1.1 图像保存时需要的参数
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| format | 否 | 格式转换 | jpeg png webp |
| quality | 否 | 质量变换 | [1,100] 默认值: settings.PROCESSOR_DEFAULT_QUALITY(75)支持JPG和WebP |
| interlace | 否 | 渐进显示 | 0:(默认值)表示将原图设置成标准显示1:表示将原图设置成渐进显示 |
| animation | 否 | 保留动画 | 0:(默认值)表示不保留动画1:表示保留动画效果 |
注意:多个操作key放在一起说明,使用都需要
/隔开;从1.2开始都是单个操作说明;
示例:
format,webpwebp能节省图像大小;format,png需要透明度使用png格式;interlace,1/quality,70/format,jpeg设置为质量75渐近显示的jpeg图像
1.2 缩放 resize
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| m | 否 | 缩放模式,需设置w或h才会生效 |
lfit(默认值) 等比缩放,缩放图限制为指定w与h的矩形内的最大图像mfit 等比缩放,缩放图为延伸出指定w与h的矩形框外的最小图像fit 将原图等比缩放为延伸出指定w与h的矩形框外的最小图像,然后将超出的部分进行居中裁剪pad 将原图缩放为指定w与h的矩形内的最大图像,然后使用指定颜色居中填充空白部分fixed 固定宽高,强制缩放参照枚举 ResizeMode |
| w | 否 | 目标缩放图的宽度 | [1, settings.PROCESSOR_MAX_W_H] |
| h | 否 | 目标缩放图的高度 | [1, settings.PROCESSOR_MAX_W_H] |
| l | 否 | 目标缩放图的最长边,优先级低于w、h配置 |
[1, settings.PROCESSOR_MAX_W_H] |
| s | 否 | 目标缩放图的最短边,优先级低于l配置 |
[1, settings.PROCESSOR_MAX_W_H] |
| p | 否 | 按百分比缩放图像,优先级低于s配置 |
[1, 1000] 小于100为缩小,大于100为放大 |
| limit | 否 | 当目标图像分辨率大于原图分辨率时,是否进行缩放 | 1 (默认值)不放大0 按照指定参数进行缩放 |
| color | 否 | 填充的颜色,仅当m=pad时有效 |
默认值:FFFFFF(白色) |
注意:settings.PROCESSOR_MAX_W_H 默认值为 30000。
示例:
resize,m_fixed,w_1000,h_1000,l_700其中l优先级低不会生效,原图1980x1080会强制缩放成1000x1000的图像
1.3 裁剪 crop
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| x | 否 | 裁剪起点横坐标(默认左上角为原点) | [0, 图像边界],默认为0 |
| y | 否 | 裁剪起点纵坐标 | [0, 图像边界],默认为0 |
| w | 否 | 目标图的宽度 | [1, 图像宽度],默认为最大值 |
| h | 否 | 目标图的高度 | [1, 图像高度],默认为最大值 |
| ratio | 否 | 根据原图按照比例计算目标宽高; 优先级高于 w、h |
格式:w:h,eg: 4:3 |
| g | 否 | 按照九宫格的位置裁剪 | 见下图所示 |
| pf | 否 | xywh相应字段按照比例计算;设置后相应字段取值范围为[1,100]; 设置了 g该参数无效 |
xywh4个字母的任意组合 |
| padr | 否 | 图像右边裁边 | [1, 图像宽度],不设置不裁边 |
| padb | 否 | 图像底部裁边 (左和上裁边可以通过x,y控制) |
[1, 图像高度],不设置不裁边 |

示例:
crop,ratio_4:3,g_center原图是500x300会居中裁剪成400x300crop,x_25,y_25,w_50,h_50,pf_xywh原图是500x400根据百分比计算,会居中裁剪成250x200crop,x_10,y_10,padr_10,padb_10原图四周裁剪10像素
1.4 圆角 circle
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| r | 否 | 将图像切出圆角,指定圆角的半径 没有设置或是超过最大内切圆的半径,按照最大内切圆的半径处理 |
[1, 图像边界] |
注意:一般结合
format,png使用,否则无透明度;
示例:
circle/format,png不设置r值,原图800x800,会裁剪成圆形,尺寸还是800x800;circle,r_10/format,png原图800x800,原图四角有半径为10的圆角;circle,r_1000/format,png原图800x800,r值超过边界,结果输出圆形图像;
1.5 模糊效果 blur
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| r | 是 | 高斯模糊半径,值越大图像越模糊 | [1, 512] |
示例:
blur,r_2
1.6 旋转 rotate
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| [value] | 否 | 图像按顺时针旋转的角度 | [0,360] 默认值:0,表示不旋转 |
注意:该操作参数无key,直接逗号后跟数值即可
示例:
rotate相当于rotate,0,不旋转rotate,90图像顺时针旋转90度rotate,45图像顺时针旋转45度,会改变原有图像宽高比
1.7 透明度 alpha
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| [value] | 否 | 图像的不透明度 | [0,100] 默认值:100,完全不透明 |
注意:该操作参数无key,直接逗号后跟数值即可;若原图非
png图像,需结合format,png使用
示例:
alpha相当于alpha,100,完全不透明alpha,0图像完全透明alpha,50/format,png图像透明度50%
1.8 灰度图 gray
无任何参数
示例:
gray图像会置灰gray/format,jpeg/quality,75一般会结合转换成jpeg并设置质量减少原图大小(非强制)
1.9 水印 watermark
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| x | 否 | 水印在原图上的起点横坐标 | [0, 图像边界] 默认 10 |
| y | 否 | 水印在原图上的起点纵坐标 | [0, 图像边界] 默认 10 |
| g | 否 | 按照九宫格计算水印的位置,优先级高于x、y |
|
| pf | 否 | xy相应字段按照比例计算;设置后相应字段取值范围为[1,100]; 设置了 g该参数无效 |
xy4个字母的任意组合 |
| fill | 否 | 水印铺满原图 | 0 (原图) 不铺满1 铺满全图 |
| padx | 否 | 平铺时单个水印间的水平间隔,仅在水印平铺开启时有效 | [0,4096],默认 0 |
| pady | 否 | 平铺时单个水印间的垂直间隔,仅在水印平铺开启时有效 | [0,4096],默认 0 |
| image | 是 | 图片水印的文件路径,需 base64url_encode 编码 | |
| text | 是 | 文字水印内容,text和image必须传递一个 需 base64url_encode 编码 |
编码前文字内容长度不超过 64 |
| font | 否 | 字体文件路径,需 base64url_encode 编码 | |
| color | 否 | 字体颜色 | 默认:000000 (黑色) |
| size | 否 | 字体大小 | 默认:40 |
| shadow | 否 | 文字水印的阴影透明度 | [0,100] 默认值:0,表示没有阴影 |
| rotate | 否 | 水印顺时针旋转角度 | [0,360] 默认值:0,表示不旋转 |
| order | 否 | 文字和图片水印的前后顺序 | 0(默认值):表示图片水印在前 1:表示文字水印在前 see PositionOrder |
| align | 否 | 文字和图片水印的对齐方式 | 0:表示文字水印和图片水印上对齐 1:表示文字水印和图片水印中对齐 2(默认值):表示文字水印和图片水印下对齐 3:垂直左对齐 4:垂直居中对齐 5:垂直右对齐 see PositionAlign |
| interval 否 | 文字和图片水印间的间距 | [0,1000],默认值:0;单位:px | |
| t | 否 | 水印的不透明度 | [0, 100],100不透明 |
| design | 否 | 水印尺寸的设计参照尺寸; design=1000意思是水印按照短边1000图像设计的; 需参照图像和design的比例进行缩放水印 |
当design=1000,若水印100x100,原图1080x720,则将水印缩放为72x72 |
示例:
watermark,text_SGVsbG8g5LiW55WM,color_FFFFFF,size_80文字水印其中SGVsbG8g5LiW55WM是Hello 世界编码后的
1.10 合并图像 merge
| 参数 | 必选 | 描述 | 取值范围 |
|---|---|---|---|
| image | 是 | 要参与合并的图像文件路径,需 base64url_encode 编码 | |
| actions | 否 | 对iamge按照字符串参数进行预处理,需 base64url_encode 编码 |
|
| bg | 否 | 是否将imgae当做背景放在输入图像之下;定义输入图像和image参数的拼接顺序 | 0 (默认值) 否,顺序为(输入图像,image); 1 是,将image当做背景,顺序为(image,输入图像) |
| p | 否 | 按输入图像的百分比缩放image图像,bg=1按照image缩放输入图像 |
[1, 1000] 小于100为缩小,大于100为放大 |
| order | 否 | 图像和image的前后顺序 |
0:该image在后 1:该image在前 不传递该参数align和interval不生效 see PositionOrder |
| align | 否 | 图像和image的对齐方式 |
0:水平上对齐 1:水平居中对齐 2(默认值):水平下对齐 3:垂直左对齐 4:垂直居中对齐 5:垂直右对齐 see PositionAlign |
| interval | 否 | 图像和image间的间距 |
[0,1000] |
| g | 否 | 按照九宫格计算水印的位置,优先级高于x、y |
|
| x | 否 | image在图像上的起点横坐标 |
[0, 图像边界] 默认 0 |
| y | 否 | image在图像上的起点纵坐标 |
[0, 图像边界] 默认 0 |
| pf | 否 | xy相应字段按照比例计算;设置后相应字段取值范围为[1,100]; 设置了 g该参数无效 |
xy2个字母的任意组合 |
| color | 否 | 拼接后扩展部分的填充颜色 | 默认: 0000 (透明) |
注: 参数
bg取值1时,order之后的参数则是:图像在image上的坐标/数值。
示例:
merge,image_dGVzdHMvaW1ncy9sZW5uYS00MDB4MjI1LmpwZw,g_ne,color_FFFF/format,png其中image是tests/imgs/lenna-400x225.jpg编码后的,FFFF表示填充全透明
2. 图像处理函数
processor
process_image(input_uri, params, out_path=None, **kwargs)
处理图像
| Parameters: |
|
|---|
| Raises: |
|
|---|
| Returns: |
|
|---|
process_image_obj(ori_im, params, out_path=None, **kwargs)
处理图像
| Parameters: |
|
|---|
| Returns: |
|
|---|
extract_main_color(img_path, delta_h=0.3)
获取图像主色调
| Parameters: |
|
|---|
| Returns: |
|
|---|
utils
base64url_encode(value)
对内容进行URL安全的Base64编码,需要将结果中的部分编码替换:
- 将结果中的加号
+替换成短划线-; - 将结果中的正斜线
/替换成下划线_; - 将结果中尾部的所有等号
=省略。
| Parameters: |
|
|---|
| Returns: |
|
|---|
base64url_decode(value)
对URL安全编码进行解码
| Parameters: |
|
|---|
| Returns: |
|
|---|
exceptions
ParamParseException
Bases: ProcessException
解析参数出现错误
ParamValidateException
Bases: ProcessException
对参数进行校验
ProcessException
Bases: Exception
图像处理异常基类
ProcessLimitException
Bases: Exception
图像处理限制
enums
OpAction
Bases: ChoiceEnum
支持的操作类型
Source code in imgprocessor/enums.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
ResizeMode
Bases: ChoiceEnum
图像缩放的模式
Source code in imgprocessor/enums.py
47 48 49 50 51 52 53 54 | |
Geography
Bases: ChoiceEnum
图像中的九宫格位置
Source code in imgprocessor/enums.py
65 66 67 68 69 70 71 72 73 74 75 76 | |
PositionOrder
Bases: ChoiceEnum
两个元素的前后顺序
Source code in imgprocessor/enums.py
79 80 81 82 83 | |
PositionAlign
Bases: ChoiceEnum
两个元素的对齐方式
Source code in imgprocessor/enums.py
86 87 88 89 90 91 92 93 94 | |
ImageFormat
Bases: ChoiceEnum
图像转换的格式
Source code in imgprocessor/enums.py
6 7 8 9 10 11 | |