技术博客
图片水印裁剪缩略接口:base64 与文件上传两种入参怎么选

图片水印裁剪缩略接口:base64 与文件上传两种入参怎么选

作者: 万维易源
2026-08-31
图片水印裁剪缩略接口缩略图水印API教程免费接口
# 图片水印裁剪缩略接口:base64 与文件上传两种入参怎么选 > 接口/接入点:图片水印裁剪缩略接口(apiCode=1)· 三类入参形态 · 是否免费:免费 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:前端、全栈 · 阅读时间:6 分钟 ## 核心要点 - 本接口三种入参形态:**文件上传**(1-1/1-2,multipart)、**base64**(1-3/1-4/1-5)、**URL**(1-8)。 - 浏览器直传图片用文件最省事;前后端已拿到 base64 字符串就用 base64;图片已在公网则用 URL 免上传。 - 选型核心看「图现在在哪、多大」——base64 比原文件大约膨胀 33%。 ## Why:为什么有三种入参 不同场景图的位置不同:用户刚选的本地文件、前端 canvas 导出的 base64、CDN 上的网络图。接口都给了对应接入点,选对形态能少写转换代码、少传一遍字节。 ## What:各接入点入参形态 | 接入点 | 能力 | 入参形态 | 关键入参 | |------|------|------|------| | 1-1 | 生成缩略图 | 文件 | `src_img`(File) | | 1-2 | 添加水印 | 文件 | `src_img` + `logo_img`(File) | | 1-3 | 添加水印 | base64 | `src_img_base64` + `logo_img_base64` | | 1-4 | 图像裁剪 | base64 | `src_img_base64` + `width`/`height`/`x`/`y` | | 1-5 | 生成缩略图 | base64 | `src_img_base64` + `type`/`rate` 等 | | 1-8 | 生成缩略图 | URL | `src_img_url`(≤5M) + `type` | ## How:选型决策 ``` 图片在本地文件? ──是──► 用文件版(1-1/1-2) │否 图片已是 base64? ──是──► 用 base64 版(1-3/1-4/1-5) │否 图片在公网 URL? ──是──► 用 URL 版(1-8,≤5M) ``` **前端把文件转 base64(用于 1-3/1-4/1-5)** ```javascript function fileToBase64(file) { return new Promise((res, rej) => { const r = new FileReader(); r.onload = () => res(r.result.split(",")[1]); // 去掉 data:image/...;base64, 前缀 r.onerror = rej; r.readAsDataURL(file); }); } const b64 = await fileToBase64(document.querySelector("input[type=file]").files[0]); ``` **Python:文件版 vs base64 版调用对比** ```python import requests, base64 # 文件版 1-1 requests.post("https://route.showapi.com/1-1", params={"appKey":"YOUR_APPKEY"}, data={"type":"rate","rate":"0.6"}, files={"src_img": open("demo.jpg","rb")}, timeout=10) # base64 版 1-5 b64 = base64.b64encode(open("demo.jpg","rb").read()).decode() requests.post("https://route.showapi.com/1-5", params={"appKey":"YOUR_APPKEY"}, data={"type":"rate","rate":"0.6","src_img_base64":b64}, timeout=10) ``` ## 返回示例(三种形态一致) ```json { "showapi_res_body": { "ret_code": "0", "des_pic_url": "http://app1.showapi.com/temp/1.jpg" } } ``` ## 进阶/边界 - base64 字符串比原文件大约膨胀 1/3,大图建议先压缩再传,避免触免费档位体积限制。 - URL 版 1-8 的 `src_img_url` 最大不超 5M,超限会失败。 - 返回值永远是 `des_pic_url`(图片地址),与入参形态无关。 ## FAQ **Q1:base64 要带 data: 前缀吗?** 文档示例为纯 base64 字符串;前端 `FileReader` 读出含前缀,传前需去掉前缀部分。 **Q2:文件版和 base64 版结果一样吗?** 图像处理逻辑一致,仅入参形态不同,返回结构相同。 **Q3:URL 版要鉴权访问图片吗?** 文档未提及,按公网可访问的图 URL 使用;私有权限图请先下载转 base64/文件。 **Q4:哪种最快?** 图已在服务端用文件/URL 省一次编码;浏览器端 canvas 场景 base64 最直接。 ## 相关能力 / 下一步阅读 - [图片水印裁剪缩略接口实战:用图片 URL 直接生成缩略图(1-8 接入点)](https://www.showapi.com/guides/url-thumbnail-guide-1) - [图片水印裁剪缩略接口实战:水印 position 九宫格与 xy 偏移怎么设](https://www.showapi.com/guides/watermark-position-guide-1) - **本系列共 13 篇**:查看[图片水印裁剪缩略接口指南总目录](https://www.showapi.com/guides/image-process-guides-1)