多语言调用看典古籍OCR API示例
看典古籍OCR API接口地址:https://ocr.kandianguji.com/ocr_api
必传参数:token、email、image(图像base64编码),支持 Form Data 和 JSON 两种请求方式。
常见可选参数说明,完整参数请查看 API使用文档 :
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
version |
string | default | 识别版本:default / beta / v2 |
det_mode |
string | auto | 排版方向:auto / sp(竖排)/ hp(横排) |
image_size |
int | 0 | 图像尺寸调整,0为不调整,建议1000-2000 |
char_ocr |
bool | false | 是否单字符检测识别 |
return_position |
bool | false | 是否返回坐标信息 |
return_choices |
bool | false | 是否返回候选字 |
det_layout |
bool | false | v2版本版面识别 |
only_plain_text |
bool | false | v2版本只识别正文 |
auto_insert_space |
bool | false | v2版本自动插入空格 |
以下为各编程语言调用示例,请将 your_token 和 your_email 替换为您自己的API Token和账号。
Python
import base64
import requests
# 读取图像并转为base64
with open("test.jpg", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
# Form Data 方式
response = requests.post(
"https://ocr.kandianguji.com/ocr_api",
data={
"token": "your_token",
"email": "your_email",
"image": image_base64,
"version": "v2",
"det_mode": "auto",
"image_size": 2000,
}
)
result = response.json()
print(result)
JavaScript (Node.js)
const fs = require("fs");
const axios = require("axios");
const imageBase64 = fs.readFileSync("test.jpg", { encoding: "base64" });
// JSON 方式
axios.post("https://ocr.kandianguji.com/ocr_api", {
token: "your_token",
email: "your_email",
image: imageBase64,
version: "v2",
det_mode: "auto",
})
.then(res => console.log(res.data))
.catch(err => console.error(err));
JavaScript (前端/Fetch)
const fileInput = document.getElementById("file");
const file = fileInput.files[0];
const reader = new FileReader();
reader.onload = async function() {
const imageBase64 = reader.result.split(",")[1]; // 去掉 data:image/...;base64, 前缀
const formData = new FormData();
formData.append("token", "your_token");
formData.append("email", "your_email");
formData.append("image", imageBase64);
formData.append("version", "v2");
formData.append("det_mode", "auto");
const response = await fetch("https://ocr.kandianguji.com/ocr_api", {
method: "POST",
body: formData,
});
const result = await response.json();
console.log(result);
};
reader.readAsDataURL(file);
cURL (命令行)
# Form Data 方式
curl -X POST https://ocr.kandianguji.com/ocr_api \
-F "token=your_token" \
-F "email=your_email" \
-F "image=$(base64 -w 0 test.jpg)" \
-F "version=v2" \
-F "det_mode=auto"
Java
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.file.*;
import java.util.Base64;
public class OcrApi {
public static void main(String[] args) throws Exception {
byte[] imageBytes = Files.readAllBytes(Paths.get("test.jpg"));
String imageBase64 = Base64.getEncoder().encodeToString(imageBytes);
String params = String.format(
"token=%s&email=%s&image=%s&version=%s&det_mode=%s",
URLEncoder.encode("your_token", "UTF-8"),
URLEncoder.encode("your_email", "UTF-8"),
URLEncoder.encode(imageBase64, "UTF-8"),
URLEncoder.encode("v2", "UTF-8"),
URLEncoder.encode("auto", "UTF-8")
);
URL url = new URL("https://ocr.kandianguji.com/ocr_api");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
try (OutputStream os = conn.getOutputStream()) {
os.write(params.getBytes("UTF-8"));
}
try (BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
}
Go
package main
import (
"bytes"
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
imageBytes, _ := os.ReadFile("test.jpg")
imageBase64 := base64.StdEncoding.EncodeToString(imageBytes)
body := map[string]string{
"token": "your_token",
"email": "your_email",
"image": imageBase64,
"version": "v2",
"det_mode": "auto",
}
jsonBody, _ := json.Marshal(body)
resp, err := http.Post(
"https://ocr.kandianguji.com/ocr_api",
"application/json",
bytes.NewBuffer(jsonBody),
)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
fmt.Println(string(respBody))
}
PHP
<?php
$imageBase64 = base64_encode(file_get_contents("test.jpg"));
$data = array(
"token" => "your_token",
"email" => "your_email",
"image" => $imageBase64,
"version" => "v2",
"det_mode" => "auto"
);
$ch = curl_init("https://ocr.kandianguji.com/ocr_api");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
?>
如遇问题,请查看 API使用文档 或通过网站反馈渠道联系我们。