欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python編寫圖片去水印小工具

 更新時(shí)間:2025年05月12日 10:46:36   作者:花小姐的春天  
你有沒有注意到,某魚上有不少提供去水印的服務(wù),收取1塊錢每張圖,最搞笑的是,很多人都沒意識(shí)到,去水印的技術(shù)其實(shí)非常簡(jiǎn)單,所以本文來和大家講講如何使用Python編寫圖片去水印小工具吧

你有沒有注意到,某魚上有不少提供去水印的服務(wù),收取1塊錢每張圖。最搞笑的是,很多人都沒意識(shí)到,去水印的技術(shù)其實(shí)非常簡(jiǎn)單,尤其是現(xiàn)在AI盛行的時(shí)代,好多平臺(tái)會(huì)提供的去水印接口便宜又好用,一張圖片只需要幾分錢就能搞定,比某魚的1塊錢便宜不知道倍!

為什么說是暴利呢?因?yàn)榛ń惆l(fā)現(xiàn)https://www.textin.com/上面有個(gè)圖像水印去除的接口,調(diào)用1次只需要0.025?。?!妥妥的只賺不虧呀!

我們?cè)诳纯慈ニ〉男Ч?,還是很厲害的,反正讓我PS絕對(duì)沒人家做的這么好,而且圖片也沒壓縮:

官方還貼心的給出了接口調(diào)用示例:

接下來我們只需要套個(gè)GUI外殼,方便我們批量處理圖片即可。

把它做成一個(gè)GUI工具

官網(wǎng)雖然給出了調(diào)用示例,但是為了提高操作便捷性,我們可以做一個(gè)圖形化界面(GUI)。別擔(dān)心,GUI不難,我這就來帶你做一個(gè)簡(jiǎn)單的Windows桌面應(yīng)用,用Tkinter這個(gè)Python內(nèi)建的庫(kù)。

1. 安裝必要的庫(kù)

pip install requests pillow

2. 編寫GUI代碼

import os
import tkinter as tk
from tkinter import filedialog, messagebox
import json
import requests
import base64
from PIL import Image
from io import BytesIO

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
    
# 之前的水印去除API調(diào)用部分
class CommonOcr(object):
    def __init__(self, img_path=None, is_url=False):
        # 圖像水印去除
        self._url = 'https://api.textin.com/ai/service/v1/image/watermark_remove'
        # 請(qǐng)登錄后前往 “工作臺(tái)-賬號(hào)設(shè)置-開發(fā)者信息” 查看 x-ti-app-id
        # 示例代碼中 x-ti-app-id 非真實(shí)數(shù)據(jù)
        self._app_id = '73b************************d269'
        # 請(qǐng)登錄后前往 “工作臺(tái)-賬號(hào)設(shè)置-開發(fā)者信息” 查看 x-ti-secret-code
        # 示例代碼中 x-ti-secret-code 非真實(shí)數(shù)據(jù)
        self._secret_code = 'de1ac7*******************48993131'
        self._img_path = img_path
        self._is_url = is_url

    def recognize(self):
        head = {}
        try:
            head['x-ti-app-id'] = self._app_id
            head['x-ti-secret-code'] = self._secret_code
            if self._is_url:
                head['Content-Type'] = 'text/plain'
                body = self._img_path
            else:
                image = get_file_content(self._img_path)
                head['Content-Type'] = 'application/octet-stream'
                body = image
            result = requests.post(self._url, data=body, headers=head)
            return result.text
        except Exception as e:
            return e

def down_img(base64str,output_folder,img_name):
    try:
        img_data = base64.b64decode(base64str)
        img = Image.open(BytesIO(img_data))
        file_name = os.path.join(output_folder,img_name)
        img.save(file_name)
        # with open(output_folder, 'wb') as f:
        #     f.write(image_data)
        print(f"去水印圖片已經(jīng)保存到 {file_name}")
    except Exception as e:
        print(f"圖片去水印失敗: {e}")

    
# GUI界面部分
class WatermarkRemoverApp:
    def __init__(self, root):
        self.root = root
        self.root.title("去水印工具")
        self.root.geometry("400x200")

        self.select_button = tk.Button(root, text="選擇文件夾", command=self.select_folder)
        self.select_button.pack(pady=20)

        self.process_button = tk.Button(root, text="開始去水印", command=self.process_images, state=tk.DISABLED)
        self.process_button.pack(pady=20)

    def select_folder(self):
        self.folder_path = filedialog.askdirectory()
        if self.folder_path:
            self.process_button.config(state=tk.NORMAL)

    def process_images(self):
        output_folder = os.path.join(self.folder_path, "output")
        os.makedirs(output_folder, exist_ok=True)
        
        for file_name in os.listdir(self.folder_path):
            if file_name.endswith((".jpg",".jpeg", ".png",".bmp")):
                file_path = os.path.join(self.folder_path, file_name)
                response = CommonOcr(img_path=file_path).recognize()
                # 解析JSON字符串為Python字典
                data = json.loads(response)
                
                if data["code"] ==200:  # 假設(shè)接口返回包含"success"表示成功
                    down_img(data["result"]["image"],output_folder,file_name)
                else:
                    messagebox.showerror("錯(cuò)誤", f"圖片 {file_name} 去水印失敗!{data['msg']}")
        
        messagebox.showinfo("完成", "所有圖片已處理完畢!")

if __name__ == "__main__":
    root = tk.Tk()
    app = WatermarkRemoverApp(root)
    root.mainloop()

3. 編寫GUI代碼

運(yùn)行起來是這個(gè)樣子的

使用教程 

  • 選擇文件夾:點(diǎn)擊“選擇文件夾”按鈕,選擇你要處理的圖片文件夾。
  • 開始去水印:點(diǎn)擊“開始去水印”,程序會(huì)自動(dòng)遍歷文件夾中的所有圖片(支持JPG、PNG等格式),然后通過調(diào)用textin接口去除水印。
  • 輸出文件:去水印后的圖片會(huì)保存在當(dāng)前文件夾中的output目錄下。

如何賺錢?

現(xiàn)在你可以用這個(gè)工具來給圖片去水印了,接下來就是去某魚發(fā)布去水印的服務(wù)。比如,你可以定個(gè)價(jià)格:每張圖片1元,批量去水印,隨便做個(gè)廣告推送,搞定!很多人會(huì)覺得手動(dòng)去水印很麻煩,尤其是做電商的商家,他們更愿意支付小額費(fèi)用來節(jié)省時(shí)間。

總結(jié) 

這篇教程給大家展示了如何利用Python簡(jiǎn)單地實(shí)現(xiàn)一個(gè)去水印工具,并且利用textin的接口去水印服務(wù)賺取差價(jià)。通過GUI界面,你甚至可以讓這個(gè)工具變得更方便易用,適合沒有編程基礎(chǔ)的人群。你可以將這款工具用作副業(yè),快速投入市場(chǎng),甚至可以做得越來越大,開始接更多客戶,走上暴富之路(咳咳,開玩笑的)。

到此這篇關(guān)于基于Python編寫圖片去水印小工具的文章就介紹到這了,更多相關(guān)Python圖片去水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論