电商图片去水印 API 实战:3 行代码搞定商品图批量去水印(附 Python / Java / PHP 示例)

做电商最头疼的事情之一:从供应商那里拿到的商品图,右下角永远挂着别人的水印Logo。自己用PS一张张处理?商品SKU成百上千,根本忙不过来。找人批量处理?又是一笔不小的外包成本。

本文介绍一种更高效的方式——调用图片去水印API,3行代码即可实现商品图的自动批量去水印,并附Python/Java/PHP完整接入示例。

一、电商场景下,为什么需要自动去水印?

如果你是电商运营、独立站卖家、或者正在搭建商品管理系统,下面这些场景你一定遇到过:

  • 供应商素材带水印:从1688、淘宝等平台拿到的商品图,往往带有供应商的水印Logo,直接上架会影响品牌形象和转化率

  • 竞品图片素材复用:做竞品分析或选品调研时,需要收集大量带水印的图片进行二次加工

  • 多平台铺货:同一批商品图要上架到淘宝、拼多多、抖音小店等多个平台,水印需要统一去除或替换

传统做法无非三种:自己用PS一张张抠(效率极低)、找人外包处理(成本高、周期长)、自己训练AI模型(技术门槛高、GPU成本贵)。

图片去水印API的方案,把“AI能力”变成一个普通接口调用——你不需要懂深度学习,不需要买GPU服务器,3行代码就能搞定。从系统角度看,流程就是:上传图片 → 调用接口 → 拿到无水印图,整个链路自动化完成。

二、石榴智能图片去水印API:功能与特点

石榴智能图片去水印API,采用自研深度学习算法与图像处理技术,上传带有水印的图像后,即可返回去除水印后的清晰图像。

核心特点

特点 说明
AI自动识别水印 无需手动标注水印位置,系统智能识别并去除
批量处理 支持循环调用,一次性处理成百上千张商品图
多场景适用 不仅去水印,还可去除图片中的污渍、划痕等瑕疵
在线工具+API双模式 普通用户可直接用在线版体验,开发者可以用在线工具免费体验效果
免费试用 注册即可获得免费测试额度

💰 价格参考:图片修复/去水印API按调用次数计费,约 ¥0.015/次。批量处理1000张商品图,成本仅15元左右,远低于外包处理费用。

三、3行代码搞定:多语言接入实战

前置准备

  1. 访问 石榴智能API市场 注册账号:支持免费在线体验,注册API账号送免费测试积分

  2. 在控制台获取你的 API_KEY 和 SECRET_KEY

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

Python 示例

# ==============================================================================
# 免费在线体验:https://www.shiliuai.com/inpaint/do
# API文档完整开发文档和代码示例:https://www.shiliuai.com/api/qushuiyin
# 支持免费在线体验
# 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 = '...'  # 图片路径
mask_path = '...'   # 蒙版路径

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

with open(mask_path, 'rb') as fp:
    mask_base64 = base64.b64encode(fp.read()).decode('utf8')

url = 'https://api.shiliuai.com/api/inpaint/v1'
headers = {'APIKEY': api_key, 'Content-Type': 'application/json'}
data = {
    'image_base64': image_base64,
    'mask_base64': mask_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}
失败:{'code': error_code, 'msg': error_msg, 'msg_cn': '错误信息'}
"""
image_id = response.get('image_id')
result_base64 = response.get('result_base64')

if result_base64:
    file_bytes = base64.b64decode(result_base64)
    with open('result.jpg', 'wb') as f:
        f.write(file_bytes)

    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次请求),用 rectangles 参数
"""
rectangles = [
    {'x1': 298, 'y1': 250, 'x2': 450, 'y2': 306},
    {'x1': 616, 'y1': 519, 'x2': 732, 'y2': 560}
]

data = {
    'image_id': image_id,
    'rectangles': rectangles
}

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

核心逻辑只有3行:读取图片→调用API→保存结果。

批量处理(电商SKU场景)

import os
from concurrent.futures import ThreadPoolExecutor

def batch_remove_watermark(input_dir, output_dir):
    """批量处理整个文件夹的商品图"""
    os.makedirs(output_dir, exist_ok=True)
    images = [f for f in os.listdir(input_dir) if f.endswith(('.jpg','.png','.jpeg'))]
    
    def process_one(filename):
        result = remove_watermark(os.path.join(input_dir, filename))
        if result.get("code") == 0:
            with open(os.path.join(output_dir, filename), "wb") as f:
                f.write(base64.b64decode(result["data"]["image"]))
            print(f"✅ {filename} 处理完成")
    
    # 多线程并发处理
    with ThreadPoolExecutor(max_workers=10) as executor:
        executor.map(process_one, images)

# 批量处理
batch_remove_watermark("./product_images/", "./clean_images/")

Java 示例

// ==============================================================================
// 免费在线体验:https://www.shiliuai.com/inpaint/do
// API文档完整开发文档和代码示例:https://www.shiliuai.com/api/qushuiyin
// 支持免费在线体验
// 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 InpaintApiExample {
    public static void main(String[] args) {
        String apiKey = "******";
        String imagePath = "...";
        String maskPath = "...";
        String apiUrl = "https://api.shiliuai.com/api/inpaint/v1";

        try {
            String imageBase64 = Base64.getEncoder().encodeToString(Files.readAllBytes(new File(imagePath).toPath()));
            String maskBase64 = Base64.getEncoder().encodeToString(Files.readAllBytes(new File(maskPath).toPath()));

            JSONObject requestData = new JSONObject();
            requestData.put("image_base64", imageBase64);
            requestData.put("mask_base64", maskBase64);

            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());
    }
}

PHP 示例

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

$url = "https://api.shiliuai.com/api/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);

$mask_path = "...";
$handle = fopen($mask_path, "r");
$mask = fread($handle, filesize($mask_path));
fclose($handle);
$mask_base64 = base64_encode($mask);

$data = array(
  "image_base64" => $image_base64,
  "mask_base64" => $mask_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);

四、电商场景实战:去水印 + 商品上架自动化

结合去水印API,你可以搭建一条完整的商品图自动化处理流水线

供应商素材下载 → 调用去水印API → 图片上传至OSS/CDN → 商品信息自动上架
# 完整流水线示例
def auto_process_product(image_url, product_name):
    # 1. 下载带水印的商品图
    download_image(image_url, "temp.jpg")
    
    # 2. 调用去水印API
    result = remove_watermark("temp.jpg")
    clean_image = base64.b64decode(result["data"]["image"])
    
    # 3. 上传至云存储(示例:阿里云OSS)
    upload_to_oss(clean_image, f"products/{product_name}.jpg")
    
    # 4. 自动上架到电商平台(示例:调用店铺API)
    shopify_create_product(product_name, f"products/{product_name}.jpg")
    
    print(f"✅ {product_name} 处理并上架完成!")

这套流程跑通后,一个人可以管理上千个SKU的商品图处理,运营效率提升10倍以上。

五、为什么选择API方案而不是自己写代码去水印?

网上有很多“用Python OpenCV去水印”的教程,但实际落地时会遇到几个问题:

方案 优点 缺点
自己写代码去水印 免费、可定制 需要懂图像处理算法、每种水印都要单独调参、复杂水印去不干净
本地PS/工具手动处理 效果好、可控 无法自动化、无法批量、人力成本高
调用去水印API 无需训练模型、无需部署、支持自动化批量、效果稳定 按调用次数付费(但单次成本极低)

对于电商场景,API方案是性价比最高的选择——你不需要养一个算法团队,也不需要买GPU服务器,只需要对接接口即可。

六、总结

图片去水印API让电商商品图的批量处理变得极其简单:

  • 3行核心代码即可完成单张图片的去水印

  • 批量处理让成百上千张商品图自动化处理成为现实

  • 结合自动化流水线,可实现从素材下载到商品上架的全链路自动化

  • 单次成本仅约¥0.011,远低于人工处理费用

立即体验石榴智能图片去水印API

  • 🆓 注册即送免费测试额度

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

  • 🛠️ 在线免费工具(无需代码,上传即体验):支持免费在线体验

相关阅读推荐

如果你在电商运营中也有图片处理的痛点,欢迎在评论区留言交流~

#图片去水印 #API接口 #电商工具 #Python教程 #批量处理 #石榴智能

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐