API文档

二维码和条形码工具 API 接口说明

本API提供二维码和条形码的在线生成和解码服务,以及图片格式转换服务。支持自定义尺寸、边距等参数,支持多种图片格式转换。所有API均支持跨域访问。

1. 生成二维码

接口地址:https://www.7k5.cn/api/qrcode

请求方式: GET

请求参数:

参数名类型是否必须默认值说明
contentstring-要生成二维码的内容
sizeinteger300二维码图片尺寸(像素)
margininteger10二维码边距(像素)

示例请求:

GET https://www.7k5.cn/api/qrcode?content=Hello&size=300&margin=10

返回格式:

直接返回PNG图片,Content-Type: image/png

2. 生成条形码

接口地址:https://www.7k5.cn/api/barcode

请求方式: GET

请求参数:

参数名类型是否必须默认值说明
contentstring-要生成条形码的内容
typestringTYPE_CODE_128条形码类型,支持 TYPE_CODE_128, TYPE_CODE_39, TYPE_EAN_13 等
widthinteger2条形码单元宽度(像素)
heightinteger100条形码高度(像素)
show_textbooleantrue是否在条形码下方显示文字

示例请求:

GET https://www.7k5.cn/api/barcode?content=123456789&width=2&height=100&show_text=true

返回格式:

直接返回PNG图片,Content-Type: image/png

3. 解码二维码/条形码

接口地址:https://www.7k5.cn/api/decode

请求方式: POST

Content-Type: multipart/form-data

请求参数:

参数名类型是否必须默认值说明
filefile-要解码的图片文件

示例请求:

POST https://www.7k5.cn/api/decode
Content-Type: multipart/form-data

file=@qrcode.png

返回格式:

{
    "code": 1,
    "msg": "解码成功",
    "data": {
        "content": "解码后的内容",
        "type": "码类型(qr/ean13等)",
        "image": "/storage/code/xxx.png"
    }
}

失败响应:

{
    "code": 0,
    "msg": "错误信息",
    "data": {
        "image": "/storage/code/xxx.png"  // 如果有上传的图片
    }
}

4. 图片格式转换

接口地址:https://www.7k5.cn/api/convert

请求方式: POST

Content-Type: multipart/form-data

请求参数:

参数名类型是否必须默认值说明
filefile-要转换的图片文件,支持的输入格式:jpg、jpeg、png、gif、bmp、webp、svg
formatstring- 目标格式,支持以下格式:
常用格式:jpg、jpeg、png、webp、gif、bmp
专业格式:tiff、psd、eps
矢量图:svg、pdf
其他格式:ico、ps、ai、pbm、pgm、ppm、pcx、fax、pcl
qualityinteger90图片质量,范围1-100。对jpg、webp、tiff等支持压缩的格式有效
maxWidthinteger1920最大宽度(像素),超过此宽度会等比缩放。对svg、eps、pdf等矢量格式无效

示例请求:

POST https://www.7k5.cn/api/convert
Content-Type: multipart/form-data

file=@image.jpg
format=png
quality=90
maxWidth=1920

成功响应:

{
    "code": 1,
    "msg": "转换成功",
    "data": {
        "url": "/storage/convert/20250203/d41d8cd98f00b204e9800998ecf8427e.png"
    }
}

失败响应:

{
    "code": 0,
    "msg": "转换失败:[具体错误信息]"
}

可能的错误信息:

  • 请选择文件
  • 不支持的源文件格式
  • 不支持的目标格式
  • PDF转换工具不存在,请检查安装
  • 临时文件创建失败
  • 转换失败

注意事项:

  • 文件上传大小限制为10MB,超过限制会返回错误
  • 转换为ICO格式时,会自动生成多种尺寸(16x16到256x256)的图标
  • 转换为PDF时会使用PostScript作为中间格式,确保最佳质量
  • 转换为SVG时会使用Potrace进行位图转矢量处理
  • 转换后的文件会在服务器保存24小时,之后自动删除
  • 建议上传合适大小的图片,过大的图片会影响转换速度和质量
  • 部分专业格式(如PSD、EPS)的转换可能需要更长的处理时间
  • 返回的文件URL为相对路径,需要配合域名使用

PHP调用示例:

$url = 'https://www.7k5.cn/api/convert';
$file = new CURLFile('/path/to/image.jpg');
$data = [
    'file' => $file,
    'format' => 'png',
    'quality' => 90,
    'maxWidth' => 1920
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

JavaScript调用示例:

const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('format', 'png');
formData.append('quality', '90');
formData.append('maxWidth', '1920');

fetch('https://www.7k5.cn/api/convert', {
    method: 'POST',
    body: formData
})
.then(response => response.json())
.then(data => {
    if (data.code === 1) {
        console.log('转换成功:', data.data.url);
    } else {
        console.error('转换失败:', data.msg);
    }
});