最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python編寫(xiě)圖片去水印小工具

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

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

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

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

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

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

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

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

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

pip install requests pillow

2. 編寫(xiě)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è)置-開(kāi)發(fā)者信息” 查看 x-ti-app-id
        # 示例代碼中 x-ti-app-id 非真實(shí)數(shù)據(jù)
        self._app_id = '73b************************d269'
        # 請(qǐng)登錄后前往 “工作臺(tái)-賬號(hào)設(shè)置-開(kāi)發(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="開(kāi)始去水印", 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. 編寫(xiě)GUI代碼

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

使用教程 

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

如何賺錢(qián)?

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

總結(jié) 

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

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

相關(guān)文章

最新評(píng)論

连云港市| 邢台市| 班玛县| 壤塘县| 呼和浩特市| 平潭县| 阿勒泰市| 华容县| 黎平县| 黄骅市| 安国市| 友谊县| 响水县| 肇州县| 克什克腾旗| 铜陵市| 贵溪市| 安宁市| 灵山县| 花垣县| 平度市| 长泰县| 洞头县| 临安市| 延庆县| 昆明市| 获嘉县| 连云港市| 泗阳县| 疏勒县| 麻城市| 浦东新区| 怀来县| 凌云县| 鄂伦春自治旗| 洮南市| 独山县| 宿迁市| 康定县| 嘉荫县| 黑水县|