输入内容,生成太阳码
支持网址与文本。URL 字母表内约 ≤58 字符,含中文走字节模式(约 ≤44 字节)。
Ctrl / ⌘ + Enter 快速生成
GIF 动图 logo 只能输出 GIF
建议正方形、透明背景;动图会自动保留动画
结果图
预览为等比缩放,下载得到原尺寸
- 提示
- 输入内容后点击「生成」
上传图片,解码内容
支持 PNG / JPG / GIF;带 logo、轻微旋转、拍照实图都能识别。
点击选择,或把图片拖到这里
上传后自动解析
不准备图片也能跑完整链路
- 单张最大 24MB;透明背景按白底处理。
- 中心带 logo、轻微旋转(实测 ±20°)、拍照实图都可识别。
- 解不出时提示「未通过 Reed-Solomon 校验」,多为图片被裁掉或压缩过度。
解码结果
上传图片后,这里会显示内容与码型参数。
解码内容
—
上传微信「加好友」二维码
微信 -> 我 -> 头像 -> 二维码名片,截图后拖进来即可。程序会在服务端解出其中的链接。
点击选择好友二维码图片
也支持直接拖进来
尚未上传
- 微信好友名片是标准二维码,内容是一条
https://u.wechat.com/...链接。 - 服务端支持 QR 版本 1~40、L/M/Q/H 纠错,截图、拍照、带轻微旋转都能读。
- 解出的链接会直接作为太阳码内容,有效期与微信名片本身一致。
生成好友太阳码
参数与「生成」栏一致:格式、中心 logo(支持 GIF 动图)、角落徽标。
生成结果
上传好友二维码后自动生成
POST
/api/encode
输入内容,返回葵花码图片(png / jpg / svg / gif)或 JSON
curl
curl -X POST https://wx.xbao.fun/api/encode \
-H 'Content-Type: application/json' \
-d '{"text":"https://example.com/","format":"png","size":600}' \
-o code.png
TRY
请求参数(JSON body,或同名的表单/query 字段)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
text | string | 是 | 要编码的内容。URL 字符集内约 ≤58 字符;含中文/符号走字节模式,约 ≤44 字节。 |
format | string | 否 | png(默认)/ jpg / svg / gif / json。 |
size | int | 否 | 位图边长,120~2000,默认 600。对 svg 无效。 |
margin | int | 否 | 位图四周白边像素,0~200,默认 0。 |
fg / bg | string | 否 | 前景 / 背景色,#rrggbb,默认黑 / 白。 |
level | string | 否 | 允许的最低纠错等级 L/M/Q/H,默认 L;容量够时会自动取更高等级。 |
version | string | 否 | auto(默认,v0~v2 取最小可容纳)/ 0 / 1 / 2 钉死版本。 |
mask | int | 否 | -1(默认)自动在 32 种掩码里按评分取最优;0~31 可固定。 |
logo | string | 否 | 中心 logo:data:image/png;base64,... / http(s) URL / 裸 base64 / 服务器本地路径。传 GIF 动图且 format=gif 时,逐帧替换中心图,得到动图。 |
logoRatio | float | 否 | logo 半径缩放,默认 1(半径 108/600)。>1.12 开始压到数据格,靠纠错兜底。 |
badge | string | 否 | 角落徽标:default(默认,画微信小程序图标)/ none 不画 / 自定义图片 URL。 |
返回(format = png / jpg / gif / svg)
| 返回 | 说明 |
|---|---|
| 响应体 | 图片二进制,Content-Type 为 image/png / image/jpeg / image/gif / image/svg+xml。 |
X-WXCode-Version | 实际使用的版本(0~3),例如 0。 |
X-WXCode-Level | 实际纠错等级 L/M/Q/H。 |
X-WXCode-Mask | 选中的掩码(0~31)。 |
X-WXCode-Typebits | 18 位格式位常量。 |
X-WXCode-Mode | NUMERIC / ALPHANUMERIC / BYTE。 |
X-WXCode-Codewords 等 | 码字总数 / 数据码字 / 纠错码字数。 |
返回(format = json)
| 字段 | 说明 |
|---|---|
text / version / level / mask | 内容、版本、纠错等级、掩码。 |
mode / transformed | 模式;ALPHANUMERIC 模式下附变换后的 QR 内文本。 |
typebits / codewords / ecCodewords | 格式位、总码字数、纠错码字数。 |
svg / pngBase64 | 矢量 SVG 文本与 PNG 的 base64(一次拿全,前端好预览/下载)。 |
logoAnimated / logoFrames | logo 是否动图、共几帧。 |
GET
/api/encode
同样的能力走 query,可直接放进 <img src>
图片标签
<img src="https://wx.xbao.fun/api/encode?text=https%3A%2F%2Fexample.com%2F&format=png&size=400">
TRY
请求参数(URL query)
| 参数 | 说明 |
|---|---|
text | 必填,内容;记得 URL 编码(https%3A%2F%2F...)。 |
format / size / margin | 同 POST。做 <img> 时最常用 format=png&size=400。 |
fg / bg / level / version / mask | 同 POST。 |
logo / logoRatio / badge | 同 POST;query 里的 logo 建议用 http(s) URL 或已编码的 data URL。 |
返回
| 返回 | 说明 |
|---|---|
| 响应体 + 响应头 | 与 POST 完全一致:图片二进制 + X-WXCode-* 头(format=json 时返回 JSON)。 |
POST
/api/decode
上传太阳码图片,解出内容
curl
curl -X POST https://wx.xbao.fun/api/decode \ -F 'file=@code.png'
TRY
请求参数(三种投喂方式,选一种)
| 参数 | 位置 | 说明 |
|---|---|---|
file | multipart | 表单文件字段,-F 'file=@code.png';字段名也接受 image。 |
| (原始二进制) | body | Content-Type: image/png,body 就是图片字节。 |
image | JSON | {"image":"data:image/png;base64,..."} 或 http(s) 链接。 |
url | query/JSON | 给图片地址,服务端下载后解析;单张上限 24MB。 |
返回
| 字段 | 说明 |
|---|---|
payload | 解出的原始内容(逆变换后的链接/文本)。 |
family / version / ecLevel | 码型(WX_CODE)、版本、纠错等级。 |
mask / typebits | 掩码与 18 位格式位。 |
mode / count | 模式与字符计数。 |
qrText | ALPHANUMERIC 模式下 QR 内部承载的文本(调试用)。 |
corrections | RS 纠正掉的码字数,0 表示读得很干净。 |
POST
/api/qr
解析普通二维码(微信「加好友」名片),取出里面的链接
curl
curl -X POST https://wx.xbao.fun/api/qr \
-F 'file=@friend.png'
# {"text":"https://u.wechat.com/xxxx","url":"https://u.wechat.com/xxxx", ...}
TRY
请求参数
| 参数 | 位置 | 说明 |
|---|---|---|
file | multipart | 二维码图片,字段名也接受 image。 |
image / url | JSON | data URL 或图片地址。 |
| (原始二进制) | body | 直接 POST 图片字节。 |
返回
| 字段 | 说明 |
|---|---|
text | 二维码里的完整文本。 |
url | 如果文本里有链接,单独挑出来(微信好友码即 https://u.wechat.com/...),可直接丢给 /api/encode。 |
version / ecLevel / mask | QR 版本(1~40)、纠错等级、掩码。 |
mode | BYTE / NUMERIC / ALPHANUMERIC(含多段时为 A+B)。 |
modules | 边长模块数(= 17+4×version)。 |
corrections | RS 纠正掉的码字数。 |
通用约定
| 项 | 说明 |
|---|---|
| 鉴权 | 无,所有接口直接可用。 |
| 错误 | 4xx/5xx + {"error":"原因"},例如容量不足会提示「载荷超出一枚葵花码容量」。 |
| 上传上限 | 图片 8MB(logo)/ 24MB(待解析图片),JSON 16MB。 |
| 跨域 | 图片响应已通过 Access-Control-Expose-Headers 暴露 X-WXCode-*。 |