图片去文字接口,支持去除图片中的文字(附 Python / Java / PHP / JS 示例)

图片去文字接口,支持去除图片中的文字(附 Python / Java / PHP / JS 示例)

在电商图片编辑、UI截图处理、视频帧字幕清理等场景中,经常需要把图片中的文字"擦掉"------无论是水印标语、日期戳,还是产品包装上的说明文字。PS手工涂抹不仅效率低,面对复杂背景时还会留下明显的"P图痕迹"。本文介绍如何通过API接口实现图片中文字的自动检测与无痕去除,并提供四种主流语言的接入示例。

一、为什么需要"图片去文字"?

互联网内容运营中,"去文字"是一项高频刚需。跨境电商从1688拿货后,商品图上往往印着中文卖点和厂家信息,需要全部擦除才能更换为英文文案;游戏和APP开发者需要批量清理截图中的UI文字和弹窗提示;自媒体创作者处理素材时也常遇到品牌Logo或Logo类水印需要去除。传统方案中,用Photoshop仿制图章一张张人工处理,或简单用白色块覆盖文字区域,前者效率太低,后者视觉效果极差,严重影响商品点击率和转化率。

二、技术原理:AI如何"无痕擦除"图片中的文字?

文字去除的本质是一个"信息推断"过程------擦除文字像素后,用算法根据周围背景信息"脑补"出被遮挡的部分。完整的去文字流程分为三步:文字检测 → 掩膜生成 → 图像修复

2.1 文字检测

通过深度学习模型定位图片中的文字区域,返回每个文字块的坐标框。这需要模型能够适应任意字体、大小和倾斜角度,并在光照不均、背景复杂的情况下依然准确检出。

2.2 掩膜生成

根据检测到的坐标生成掩膜------即用白色标记文字区域、黑色标记背景,告诉AI"哪里需要被修复"。传统方法需要用户手动圈选或绘制,现在主流API已实现全自动完成。

2.3 图像修复

这是最核心的环节。传统OpenCV的cv2.inpaint基于像素扩散原理,简单地把周围像素"抹"过来。这种方式在处理纯色背景时尚可,一旦遇到渐变色、木纹、金属反光或复杂纹理,修补区域就会变成一团模糊的"马赛克",肉眼可见的P图痕迹严重影响观感。当前的AI Inpainting技术基于GAN或Diffusion架构,AI看的是"语义"而非"像素"------当识别到背景是"木纹"时,它会理解纹理应该连续延伸;当识别到"放射状光效"时,它会计算出光线走向并生成符合物理规律的光影。生成的像素不是"复制"而是"创造",真正实现了无痕修复。RefineAnything等多模态精修框架还能严格保证被修改区域外的每一个像素保持不变,适用于Logo修复、文字局部重绘等高精度需求场景。

三、主流去文字方案对比

方案 是否需要手动圈选 处理速度 复杂背景效果 适合人群
Photoshop仿制图章 ✅ 需要 3-5分钟/张 较差,易断层 美工设计师
在线免费工具 手动/半自动 约10秒/张 一般 普通用户
Qwen-Image本地部署 ✅ 无需 GPU约2-3秒/张 优秀 有技术实力的团队
石榴智能去文字API ✅ 无需,可设置检测文字 毫秒级 优秀 开发者、企业
阿里云萬相API 指令式,需Prompt 约2-5秒/张 优秀 开发者

远程API方案的核心优势:一次开发,永久自动执行;无需自建高配GPU服务器(20B大模型的本地部署门槛极高,如Qwen-Image-Edit模型要求显存≥24GB);模型由供应商持续更新,无需自研;支持高并发批量处理,适合企业级应用。

四、石榴智能"图片去文字"API核心功能

石榴智能的图片修复/去水印API基于自研深度学习算法与图像处理技术,专门针对文字擦除场景进行了优化,核心能力包括:

  • 自动文字检测:无需用户手动指定区域,API会自动识别并定位图片中的所有文字位置。无论文字是压在渐变背景上还是嵌入复杂纹理中,都能精准检测

  • 智能背景填充:应用AI Inpainting技术,根据周围背景语义信息自动补全擦除后的区域,对渐变背景、木纹、金属质感等高难度场景表现出色

  • 毫秒级响应:单张图片处理时间远低于人工操作,适合实时性要求高的场景

  • 多格式支持:兼容JPG、PNG、WEBP等主流图片格式

  • 隐私安全:敏感图片处理完成后可设置自动清除

适用文字类型:Logo类文字水印、图片角落的版权信息(如"©2026 Studio")、视频帧中烧录的字幕和日期戳、产品包装和标签上的说明文字。

五、石榴智能图片去文字API接入实战

5.1 准备工作

  1. 访问石榴智能API市场注册账

  2. 登录控制台,在"我的应用"中获取你的 AppCode(API调用凭证)

  3. API接口地址:POST https://api.shiliuai.com/api/auto_inpaint/v1

5.2 Python 接入示例

python 复制代码
# ==============================================================================
# 免费在线体验:https://www.shiliuai.com/auto_inpaint/
# API文档完整开发文档和代码示例:https://www.shiliuai.com/api/zidongqushuiyin
# 支持免费在线体验
# API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
# ==============================================================================

# -*- coding: utf-8 -*-
import requests
import base64
import cv2
import json
import numpy as np

api_key = '******'  # 你的API KEY
image_path = '...'  # 图片路径

"""
用 image_base64 请求
"""
with open(image_path, 'rb') as fp:
    image_base64 = base64.b64encode(fp.read()).decode('utf8')

url = 'https://api.shiliuai.com/api/auto_inpaint/v1'
headers = {'APIKEY': api_key, "Content-Type": "application/json"}
data = {
    "image_base64": image_base64
}

response = requests.post(url=url, headers=headers, json=data)
response = json.loads(response.content)
"""
成功:{'code': 0, 'msg': 'OK', 'msg_cn': '成功', 'result_base64': result_base64, 'image_id': image_id}
or
失败:{'code': error_code, 'msg': error_msg, 'msg_cn': 错误信息}
"""
image_id = response['image_id']
result_base64 = response['result_base64']
file_bytes = base64.b64decode(result_base64)
f = open('result.jpg', 'wb')
f.write(file_bytes)
f.close()

image = np.asarray(bytearray(file_bytes), dtype=np.uint8)
image = cv2.imdecode(image, cv2.IMREAD_UNCHANGED)
cv2.imshow('result', image)
cv2.waitKey(0)

"""
第二次用 image_id 请求(根据实际场景判断是否需要2次请求)
"""
data = {
    "image_id": image_id
}

response = requests.post(url=url, headers=headers, json=data)

5.3 Java 接入示例

java 复制代码
// ==============================================================================
// 免费在线体验:https://www.shiliuai.com/auto_inpaint/
// API文档完整开发文档和代码示例:https://www.shiliuai.com/api/zidongqushuiyin
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.util.Base64;
import org.json.JSONObject;

public class AutoInpaintApiExample {
    public static void main(String[] args) {
        String apiKey = "******";
        String filePath = "...";
        String apiUrl = "https://api.shiliuai.com/api/auto_inpaint/v1";

        try {
            String imageBase64 = Base64.getEncoder().encodeToString(Files.readAllBytes(new File(filePath).toPath()));
            JSONObject requestData = new JSONObject();
            requestData.put("image_base64", imageBase64);

            JSONObject response = sendPost(apiUrl, apiKey, requestData);
            if (response.getInt("code") == 0) {
                byte[] resultBytes = Base64.getDecoder().decode(response.getString("result_base64"));
                Files.write(new File("result.jpg").toPath(), resultBytes);
                System.out.println("自动去水印成功,已保存 result.jpg");
            } else {
                System.out.println("请求失败: " + response.optString("msg_cn", response.optString("msg")));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static JSONObject sendPost(String apiUrl, String apiKey, JSONObject body) throws Exception {
        HttpURLConnection conn = (HttpURLConnection) new URL(apiUrl).openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("APIKEY", apiKey);
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setDoOutput(true);
        try (OutputStream os = conn.getOutputStream()) {
            os.write(body.toString().getBytes("utf-8"));
        }
        StringBuilder sb = new StringBuilder();
        try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"))) {
            String line;
            while ((line = br.readLine()) != null) sb.append(line.trim());
        }
        return new JSONObject(sb.toString());
    }
}

5.4 PHP 接入示例

java 复制代码
// ==============================================================================
// 免费在线体验:https://www.shiliuai.com/auto_inpaint/
// API文档完整开发文档和代码示例:https://www.shiliuai.com/api/zidongqushuiyin
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================

$url = "https://api.shiliuai.com/api/auto_inpaint/v1";
$method = "POST";
$apikey = "******";
$header = array();
array_push($header, "APIKEY:" . $apikey);
array_push($header, "Content-Type:application/json");

$image_path = "...";
$handle = fopen($image_path, "r");
$image = fread($handle, filesize($image_path));
fclose($handle);
$image_base64 = base64_encode($image);

$data = array(
  "image_base64"=> $image_base64
);
$post_data = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curl);
var_dump($response);

5.5 JavaScript 接入示例(Node.js)

javascript 复制代码
// ==============================================================================
// 免费在线体验:https://www.shiliuai.com/auto_inpaint/
// API文档完整开发文档和代码示例:https://www.shiliuai.com/api/zidongqushuiyin
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================

const fs = require('fs');

const apiKey = '******';
const imagePath = '...';
const apiUrl = 'https://api.shiliuai.com/api/auto_inpaint/v1';

async function main() {
  const imageBase64 = fs.readFileSync(imagePath).toString('base64');

  let res = await fetch(apiUrl, {
    method: 'POST',
    headers: {
      APIKEY: apiKey,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ image_base64: imageBase64 })
  });

  let data = await res.json();
  if (data.code !== 0) {
    console.error('请求失败:', data.msg_cn || data.msg);
    return;
  }

  fs.writeFileSync('result.jpg', Buffer.from(data.result_base64, 'base64'));
  console.log('自动去水印成功,已保存 result.jpg');

  res = await fetch(apiUrl, {
    method: 'POST',
    headers: {
      APIKEY: apiKey,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ image_id: data.image_id })
  });

  data = await res.json();
  console.log('二次请求结果:', data);
}

main().catch(console.error);

石榴智能API也支持手动指定需要擦除的文字区域。如果只想擦除图片中特定内容的文字(如仅淘宝官方的违禁词),用户可以自定义设置。其他备选API产品如阿里云萬相支持通过文本指令驱动编辑(如"移除图片中的文本"),石榴智能后续也将上线指令式擦除功能。

  • 支持免费在线体验,注册API账号送免费测试积分
  • API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

API文档完整开发文档和代码示例:https://www.shiliuai.com/api/zidongqushuiyin

六、典型应用场景

  • 电商图片本地化:跨境电商将商品图上的中文卖点、参数表擦除后,替换为英文/德语/日语文案,完成多站点快速适配,效率比人工修图提升数十倍

  • UI/截图清理:产品经理和运营人员需要App界面截图做演示时,一键擦除聊天记录中的敏感文字、日期时间戳等元素,保护隐私信息

  • 视频帧处理:去除视频抽帧图片中的字幕和台标,用于二次剪辑和再创作,避免版权纠纷

  • 文档扫描优化:去除扫描件上的"复印件""Confidential"等水印标记,获得干净的电子文档

  • AI训练数据清洗:从大量网络图片中自动擦除水印和标注文字,为机器学习模型准备更纯净的数据集

七、与其他功能的联动

石榴智能"图片去文字"API可以与平台的其他图片处理API形成强大组合:

  • 去文字 + 智能抠图:先擦除商品图上的文字水印,再用抠图功能去除背景,一步到位获得透明底的干净商品图

  • 去文字 + 图片变清晰:先去除低分辨率图片上的模糊文字,再调用超分辨率接口增强画质,实现双倍修复效果

  • 去文字 + 证件照制作:去除证件照上的日期戳和编号水印,再按合规尺寸裁剪制作

这些API均可在石榴智能API市场一站式获取。

八、为什么选择API而不是自己部署模型?

  • 零门槛:无需配置PyTorch、CUDA等复杂环境,注册即可使用。本地部署Qwen-Image大模型需要≥24GB显存的专业GPU服务器,普通开发环境根本无法运行

  • 持续更新:AI修复模型会持续迭代,API用户自动享受最新算法成果,无需自己训练和维护

  • 高并发:支持毫秒级响应和批量处理,单次API调用即可完成检测+擦除全流程,无需分步调用多个接口

  • 成本可控:按次计费,用多少付多少。对于月处理1-10万张图片的用户,API方案的综合成本远低于雇佣美工

九、总结

图片去文字接口大幅降低了图像清理的技术门槛。通过API,开发者只需几行代码就能实现文字检测与无痕修复的全流程自动化,彻底告别Photoshop手工涂抹的低效时代。石榴智能图片去文字API支持全自动检测和多语言接入,无论是电商图片的批量本地化,还是UI截图的敏感信息清理,都能在毫秒级内完成高质量修复。注册即可获得免费测试额度,立即体验AI驱动的无痕去文字能力。

立即体验

  • 🆓 注册领取免费测试额度

  • 📘 完整开发文档(图片修复/去水印):API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

  • 🛠️ 在线免费工具:支持免费在线体验效果

相关阅读推荐

你在使用过程中遇到过哪些棘手的图片文字去除难题?欢迎在评论区留言交流,我会逐一回复。

相关推荐
zzz_23681 小时前
【Java基础】HashMap——为什么JDK 7扩容会死循环,JDK 8又是怎么修好的
java·开发语言
程序猿乐锅1 小时前
JavaSE 总复习:语法到多线程全梳理
java·开发语言
Sam09271 小时前
1 个 Java 服务可以支撑多少 SSE 连接:从线程模型到容量评估
java·人工智能·ai
云器科技1 小时前
云器技术问答 Vol.2:揭秘通用增量计算
java·开发语言
极光代码工作室1 小时前
基于机器学习的新闻分类系统
人工智能·python·深度学习·机器学习
枫叶v.1 小时前
Agent 开发架构:从增强型 LLM 到可运维的自治系统
开发语言·python
winfredzhang6 小时前
用 MediaPipe 手势数字识别一键打开下载夹里的图片(Python + OpenCV 实战)
人工智能·python·opencv·google·mediapipe
阿维的博客日记8 小时前
Hippo4j 线程池监控平台部署手册
java·spring boot·后端
某人辛木10 小时前
Web自动化测试
前端·python·pycharm·pytest