多语言调用看典古籍OCR API代码示例

多语言调用看典古籍OCR API示例

看典古籍OCR API接口地址:https://ocr.kandianguji.com/ocr_api


必传参数tokenemailimage(图像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_tokenyour_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使用文档 或通过网站反馈渠道联系我们。

返回查看更多文档
Loading...
Bootstrap Check Bootstrap