【教學類-102-22】蝴蝶彩色1——通義萬相“彩色蝴蝶”透明切邊基礎圖片制作(五款板式、批量下載、修圖、透明、切邊)

一、下載圖片

關鍵詞:卡通簡筆畫,白色背景,黑白輪廓線,、鮮艷,彩色,一只蝴蝶,簡單,可愛,矢量圖,大。

簡筆畫? ? 強度1? ?4:3(長方形適配A4紙)

五種板式

4:3

3:4

9:16

16:9

1:1

用Python代碼下載

'''
Python下載通義萬相的圖片(存在問題,不能停止,只能默認下載300張,刪除多余)
星火訊飛,阿夏
20250415
'''import os,time
import pyautogui
import pyperclip
import re
import win32api
import win32con''''''# 暫停,把Python頁面最小化
time.sleep(5)name='彩色蝴蝶'
# 先打開微信# 讀取文件名稱和路徑
path=fr'C:\Users\jg2yXRZ\OneDrive\桌面\{name}'
os.makedirs(path,exist_ok=True)# 打開第一圖      
pyautogui.moveTo(646, 260)
pyautogui.click() 
time.sleep(5)
# 預設照片數量
num=600for i in range(num):# 下載按鈕     pyautogui.moveTo(1356, 263)# pyautogui.click() time.sleep(1)# 點擊無水印    pyautogui.moveTo(1450, 383)pyautogui.click() time.sleep(2)# 輸入圖片名稱,復制中文內容到剪貼板name=path+fr'\{i:03}'pyperclip.copy(name)# 黏貼圖片地址pyautogui.hotkey('ctrl', 'v')time.sleep(1)pyautogui.press('enter')
#     # 圖片顯示需要時間time.sleep(1)# 模擬按鍵“右箭頭”pyautogui.moveTo(1075, 581)pyautogui.click() time.sleep(2)#  'left'(左箭頭)# 'up'(上箭頭)# 'down'(下箭頭)

20250501Python下載通義萬相圖片

二、PS統一白色背景為255.255.255。

用PS把白色背景部分改成純白色,便于制作透明背景

因為不同圖片,所以選擇白色背景的坐標點位置不同


每次都要根據板式,選擇相應數字,修改點擊位置

PS代碼

'''
把彩色圖片修圖成(五種板式)
VSCODE界面最小化
1、背景255,255,255
星火訊飛、阿夏1、火狐100%
2、英文狀態
20250502'''
import os,time
import pyautogui
import pyperclip
import re
# time.sleep(2)
import win32api
import win32con# 讀取文件名稱和路徑
path=r'D:\20250502彩色蝴蝶'
folder_path = path +r'\16比9'
new_path=path +r'\01蝴蝶彩色白背景'
os.makedirs(new_path,exist_ok=True)
# 圖片白色點擊位置
# 1:1 (496, 211)
# 4:3 (272, 143)
# 3:4 (548, 169)
# 16:9 (196, 195)
# 9:16 (599, 125)
dj=[(496, 211),(272, 143),(548, 169),(196, 195),(599, 125)]
n=int(input('輸入板式 1=1比1;2=4比3;3=3:4;4=16:9;5=9比16\n'))
x1=dj[n-1][0]
y1=dj[n-1][1]
print(x1,y1)# Python VSCODE界面最小化
import sys
import ctypesdef minimize_vscode():try:# Windows 系統if sys.platform == 'win32':hwnd = ctypes.windll.user32.GetForegroundWindow()ctypes.windll.user32.ShowWindow(hwnd, 6)  # SW_MINIMIZE = 6# 其他系統可能需要不同的方法except:pass  # 忽略錯誤# 你的主程序代碼
print("程序運行中...")
# 程序結束后最小化 VS Code
minimize_vscode()
time.sleep(5)'''
預先打開PS,把頁面右側的圖案打開
改成英文輸入狀態
左邊的前后背景改為白/黑
'''file_paths = [os.path.join(folder_path, file_name) for file_name in os.listdir(folder_path)]
print(file_paths)
# 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\20250322班級園園通上傳\\特色美術\\19 第19周 主題知識(2025.1.6——2025.1.17)(中2班下學期)-寒冷的冬天1.png']# 不同的切片方式
file_names = os.listdir(folder_path)
print(file_names)
# 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\20250322班級園園通上傳\\特色美術\\19 第19周 主題知識(2025.1.6——2025.1.17)(中2班下學期)-寒冷的冬天1.png']for i in range(len(file_paths)):# 打開第一圖pyautogui.moveTo(540, 228)pyautogui.click()    # 模擬按下 Ctrl# pyautogui.hotkey('Ctrl', 'O')win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0)# 模擬按下 Mwin32api.keybd_event(ord('O'), 0, 0, 0)# 模擬釋放 Mwin32api.keybd_event(ord('O'), 0, win32con.KEYEVENTF_KEYUP, 0)# 模擬釋放 Ctrlwin32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)# # 打開圖片需要時間time.sleep(3)# 輸入文件夾網址,復制中文內容到剪貼板pyperclip.copy(folder_path)# 黏貼圖片地址pyautogui.hotkey('ctrl', 'v')time.sleep(1)# 打開(回車打開圖片)pyautogui.press('enter')# 圖片顯示需要時間time.sleep(1)# 輸入圖片名稱,復制中文內容到剪貼板pyperclip.copy(file_names[i])# 黏貼圖片地址pyautogui.hotkey('ctrl', 'v')time.sleep(1)# 打開(回車打開圖片)pyautogui.press('enter')# 圖片顯示需要時間time.sleep(1)# 選取魔棒   (魔棒快捷鍵:按鍵W)# 按下并釋放 W 鍵pyautogui.press('w')  # 按下并立即釋放# 按住 W 鍵不放(常用于游戲中的持續移動)pyautogui.keyDown('w')  # 按下不放# ... 這里可以添加延遲或其他操作 ...pyautogui.keyUp('w')   # 釋放按鍵time.sleep(1)  # 鼠標移到左上角的白色    pyautogui.moveTo(x1, y1)pyautogui.click()time.sleep(1) # 新建圖層pyautogui.moveTo(1866, 1039)pyautogui.click()time.sleep(1)# 選取魔棒   (魔棒快捷鍵:按鍵W)# 按下并釋放 W 鍵pyautogui.press('g')  # 按下并立即釋放# 按住 W 鍵不放(常用于游戲中的持續移動)pyautogui.keyDown('g')  # 按下不放# ... 這里可以添加延遲或其他操作 ...pyautogui.keyUp('g')   # 釋放按鍵# 鼠標移到左上角的白色    pyautogui.moveTo(x1, y1)pyautogui.click()time.sleep(1) # 合并圖層pyautogui.hotkey('ctrl', 'E')time.sleep(1)# 取消全選pyautogui.hotkey('ctrl', 'd')time.sleep(1)# 另存為# 方法1:使用 hotkey 函數(推薦)pyautogui.hotkey('shift', 'ctrl', 's')# 方法2:分步操作(更精確控制)pyautogui.keyDown('shift')    # 按下Shiftpyautogui.keyDown('ctrl')     # 按下Ctrlpyautogui.press('s')          # 按下并釋放Spyautogui.keyUp('ctrl')       # 釋放Ctrlpyautogui.keyUp('shift')      # 釋放Shifttime.sleep(2)  # 等待2秒,讓你有時間切換到目標窗口# 確保目標窗口已激活NEW=new_path+file_names[i]print(NEW)# 輸入文件夾網址,復制中文內容到剪貼板pyperclip.copy(new_path)# 黏貼圖片地址pyautogui.hotkey('ctrl', 'v')time.sleep(1)# 打開(回車打開圖片)pyautogui.press('enter')# 圖片顯示需要時間time.sleep(1)#  輸入圖片名稱,復制中文內容到剪貼板pyperclip.copy(file_names[i])# 黏貼圖片地址pyautogui.hotkey('ctrl', 'v')time.sleep(1)# 打開(回車打開圖片)# pyautogui.press('enter')# 圖片顯示需要時間time.sleep(1)#,改pngC:\Users\jg2yXRZ\OneDrive\桌面\20250401邊緣線剪紙\15蝴蝶三色pyautogui.moveTo(1125, 574)pyautogui.click()time.sleep(2)#,改pngpyautogui.moveTo(947, 768)pyautogui.click()time.sleep(2)# 修改路徑# 按回車,出現保存按鈕pyautogui.press('enter')# 圖片顯示需要時間time.sleep(3)# 確認png格式pyautogui.press('enter')# 圖片顯示需要時間01-07.pngtime.sleep(3)# 關閉圖片pyautogui.moveTo(200, 70)pyautogui.click()time.sleep(5)# 否關閉圖片pyautogui.moveTo (970, 405)pyautogui.click()time.sleep(2)

從“原圖”修圖后,保存到“白背景”

三、重新編號

可能會刪除幾張不好看的,導致出現不相連的情況

把確認保留的圖片重新按序編號。我想替換保留在源文件夾里。

本來設置從1開始,但是報錯了

意思是,已經有文件名字是001.png,如果替換,就會有2個一樣001.png。

起始數字改成1000,肯定不會有一樣的

原來的編號

1000開始的編號

再把1000改成1,從1開始編號

修改序號的代碼

'''
整理圖片的編號,多的圖片核對是否要刪除
20250502
'''# sz=5
import os
import randompath=r'D:\20250502彩色蝴蝶\01_01蝴蝶彩色白背景'
def rename_images(folder_path):# 獲取文件夾中的所有文件files = os.listdir(folder_path)# 過濾出圖片文件(假設圖片格式為.jpg)image_files = [f for f in files if f.endswith('.png')]# 開始的數字 第001張,改編號numbers=1000numbers=1# 遍歷圖片文件并重命名for i, image_file in enumerate(image_files):# 構建新的文件名new_name = f'{numbers:03}.png'# 獲取原文件和新文件的完整路徑old_path = os.path.join(folder_path, image_file)new_path = os.path.join(folder_path, new_name)# 重命名文件os.rename(old_path, new_path)numbers+=1# 調用函數,傳入文件夾路徑
rename_images(path)

總數202張

四、做成透明圖,修邊

然后就是把1:1、3:4、4:3、16:9、9:16的蝴蝶圖做成透明背景,再切邊。

'''
把彩色圖片(PS背景白色)做成透明,切邊圖
透明部分改成純白色,沒有任何灰色。
deepseek,阿夏
20250502
'''
from PIL import Image, ImageDraw
import os
import mathprint('------0、基本信息-----')
# 主路徑
path = r'D:\20250502彩色蝴蝶'
a='01'
b='蝴蝶彩色'
c='切邊圖'# 定義文件夾路徑
in_folder = os.path.join(path,f'{a}_01{b}白背景')  # 原始圖片(白背景)
transparent_folder = os.path.join(path, f'{a}_03{b}{c}透明背景')  # 透明背景輸出
final_folder = os.path.join(path,f'{a}_05{b}{c}切邊') # 裁剪后的透明圖片# 創建輸出文件夾
os.makedirs(transparent_folder, exist_ok=True)
os.makedirs(final_folder, exist_ok=True)print('------2、白色PNG背景變成透明-----')
def process_image_to_transparent(file_path):img = Image.open(file_path)img = img.convert("RGBA")datas = img.getdata()new_data = []for item in datas:if item[0] == 255 and item[1] == 255 and item[2] == 255:new_data.append((255, 255, 255, 0))elif item[0] == 254 and item[1] == 255 and item[2] == 255:new_data.append((254, 255, 255, 0))else:new_data.append(item)img.putdata(new_data)return imgprint("正在轉換白背景為透明背景...")
for file_name in os.listdir(in_folder):if file_name.lower().endswith((".png", ".jpg", ".jpeg")):input_file_path = os.path.join(in_folder, file_name)output_file_path = os.path.join(transparent_folder, file_name)processed_image = process_image_to_transparent(input_file_path)processed_image.save(output_file_path)print(f"已處理: {file_name}")def crop_to_content(img):"""裁剪圖片到非透明內容的最小邊界"""# 獲取圖片的alpha通道alpha = img.getchannel('A')# 獲取alpha通道的邊界框bbox = alpha.getbbox()if bbox:return img.crop(bbox)return img  # 如果沒有內容,返回原圖print('-------切白邊-----------')
def process_images():"""完整的圖片處理流程"""print("=== 開始裁剪透明白邊 ===")for filename in os.listdir(transparent_folder):if filename.lower().endswith('.png'):dotput_path = os.path.join(transparent_folder, filename)croput_path = os.path.join(final_folder, filename)try:img = Image.open(dotput_path).convert('RGBA')cropped = crop_to_content(img)cropped.save(croput_path, format='PNG')print(f"裁剪完成: {filename}")except Exception as e:print(f"裁剪失敗 {filename}: {str(e)}")print("\n=== 處理完成 ===")print(f"裁剪后的圖片保存在: {final_folder}")if __name__ == '__main__':process_images()

一、透明圖

做成透明圖(下載圖片時的原始大小)

二、切邊圖(圖案最大化)

這下無論1:1、3:4、4:3、16:9、9:16的圖片,都按照圖案的最大長寬,切出了最大的圖案。作為制作的基礎素材了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79156.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JAVA】方法定義與重載:JVM方法調用機制(8)

核心知識點詳細解釋 Java方法的定義和使用 在Java中,方法是一段具有特定功能的代碼塊,它可以接受參數并返回一個值。方法的定義包括方法的修飾符、返回類型、方法名、參數列表和方法體。其基本語法如下: 修飾符 返回類型 方法名(參數列表)…

基于STM32的帶恒溫系統智能外賣柜設計

標題:基于STM32的帶恒溫系統智能外賣柜設計 內容:1.摘要 隨著外賣行業的迅速發展,對外賣存放設備的智能化和功能性要求日益提高。本設計的目的是開發一種基于STM32的帶恒溫系統智能外賣柜。方法上,以STM32微控制器為核心,結合溫度傳感器、加…

【綜述】相位解包裹算法對比分析

引言 相位解包裹是基于干涉的位相測量技術中的重要環節,如合成孔徑雷達干涉、光學干涉測量技術、醫學成像技術、數字全息三維成像、相干衍射成像等技術中都涉及位相解包裹。位相解包裹也稱為位相展開、位相解截斷、位相解纏繞等。與之相反的過程謂之包裹位相、截斷…

Rust 學習筆記:關于枚舉與模式匹配的練習題

Rust 學習筆記:關于枚舉與模式匹配的練習題 Rust 學習筆記:關于枚舉與模式匹配的練習題以下程序能否通過編譯?若能,輸出是什么?考慮這兩種表示結果類型的方式,若計算成功,則包含值 T&#xff1b…

C++負載均衡遠程調用學習之QPS性能測試

目錄 1.昨日回顧 2.QPS_TEST_PROTOBUF協議的集成 3.QPS_TEST_SERVER端實現 4.QPS_TEST_QPS簡單介紹 5.QPS_TEST_QPS客戶端工具編寫和性能測試 1.昨日回顧 2.QPS_TEST_PROTOBUF協議的集成 ## 14) Reactor框架QPS性能測試 ? 接下來我們寫一個測試用例來測一下我們…

【MySQL數據庫】視圖

1,視圖的基本介紹 視圖是一個虛擬表,其內容由查詢定義。與真實表一樣的是,視圖包含帶有名稱的列和行數據;與真實表不一樣的是,視圖本身并不在數據庫中存儲數據。視圖的數據變化會影響到基表,基表的數據變化…

Linux系統安裝方式+適合初學者的發行版本

Linux系統安裝方式適合初學者發行版—目錄 一、Linux系統的安裝方式1. 物理機直接安裝2. 虛擬機安裝3. 雙系統安裝4. Live USB試用5. 云服務器安裝 二、適合初學者的Linux發行版1. Ubuntu2. Linux Mint3. Zorin OS4. Pop!_OS5. Elementary OS6. Fedora7. Manjaro 三、選擇建議場…

Linux C++ JNI封裝、打包成jar包供Java調用詳細介紹

在前面 Android專欄 中詳細介紹了如何在Android Studio中調用通過jni封裝的c庫。 在Android使用 opencv c代碼,需要準備opencv4android,也就是c的任何代碼,是使用Android NDK編譯的,相當于在windows/mac上使用Android stdido交叉…

4.1 模塊概述

1.Python結構 工程 > 包 > 模塊 Python工程: “Python項目中最大的文件夾(本質就是一個文件夾)” --- 左側的 CODE文件夾 為Python工程 Python包: 本質就是一個文件夾,但是python包中具備具體的標識,如果沒有標識則不能導入 --- 左側的 01.Python基礎 文件夾為python包 P…

AJAX 實例

AJAX 實例 引言 Ajax(Asynchronous JavaScript and XML)是一種在無需重新加載整個頁面的情況下,與服務器交換數據并更新部分網頁的技術。Ajax通過在后臺與服務器交換數據,實現了頁面的動態更新,從而提高了用戶體驗和…

相機的基礎架構

📷 相機相關基礎架構學習路徑 一、了解手機相機系統架構 Android Camera HAL(如果你是做 Android 平臺) 學習 Camera HAL3 架構(基于 camera_device_t, camera3_device_ops 接口) 熟悉 CameraService → CameraProvid…

MLX Chat - 基于 Streamlit 的 MLX 前端界面

本文翻譯整理自:https://github.com/da-z/mlx-ui 一、關于 MLX Chat 一個基于 Streamlit 的簡單 UI/網頁前端,用于 MLX mlx-lm 項目。 相關鏈接資源 github : https://github.com/da-z/mlx-uiMLX 社區模型庫:https://huggingface.co/mlx-co…

el-table 自定義列、自定義數據

一、對象數組格式自定義拆分為N列 1-1、數據格式: const arrayList ref([{"RACK_NO": "A-1-001"},{"RACK_NO": "A-1-002"},{ "RACK_NO": "A-1-003"},//省略多個{"RACK_NO": "A-1-100…

JVM 如何使用性能分析工具定位代碼中的性能問題?

核心思想: 通過工具觀察程序在特定負載下的運行狀態,識別消耗資源最多的代碼段(熱點代碼)、異常的內存分配模式或線程阻塞情況,然后針對性的優化代碼。 通用步驟: 確定問題: 首先明確遇到了什…

Python虛假新聞檢測識別

程序示例精選 Python虛假新聞檢測識別 如需安裝運行環境或遠程調試,見文章底部個人QQ名片,由專業技術人員遠程協助! 前言 這篇博客針對《Python虛假新聞檢測識別》編寫代碼,代碼整潔,規則,易讀。 學習與應…

網絡原理 - 12(HTTP/HTTPS - 3 - 響應)

目錄 認識“狀態碼”(status code) 200 OK 404 Not Found 403 Forbidden 405 Method Not Allowed 500 Internal Server Error 504 Gateway Timeout 302 Move temporarily 301 Moved Permanently 418 I am a teaport 狀態碼小結: …

Spring Boot中集成Guava Cache或者Caffeine

一、在Spring Boot(1.x版本)中集成Guava Cache 注意&#xff1a; Spring Boot 2.x用戶&#xff1a;優先使用Caffeine&#xff0c;性能更優且維護活躍。 1. 添加依賴 在pom.xml中添加Guava依賴&#xff1a; <dependency><groupId>com.google.guava</groupId&…

Linux工作臺文件操作命令全流程解析

全文目錄 1 確認當前工作路徑2 導航與目錄管理2.1 關鍵命令2.2 邏輯銜接 3 文件基礎操作3.1 創建 → 備份 → 重命名 → 清理3.2 文件查看和編輯3.3 文件鏈接3.4 文件diff 4 文件權限與所有權管理5 文件打包與歸檔6 參考文獻 寫在前面 shell是一種命令解釋器&#xff0c;它提供…

LeetCode第183題_從不訂購的客戶

LeetCode 第183題&#xff1a;從不訂購的客戶 題目描述 表: Customers ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是該表的主鍵。 該表包含消費者的 id 和…

c語言的常用關鍵字

c語言的常用關鍵字 c語言的關鍵字表示數據類型的關鍵字autocharfloatdoubleintlongshortvoidsignedstruct、enum、unionunsigned 表示分支語句的關鍵字ifelseswitchbreakcasecontinuedefault 表示循環語句的關鍵字whiledoforgoto 用于修飾變量或函數的關鍵字constconst修飾變量…