Python 萬能程式碼模版:批量搞圖,秀翻全場(上)
# -*- coding: utf-8 -*-
# @Author: AI 悅創
# @Date: 2021-10-02 10:26:52
# @Last Modified by: aiyc
# @Last Modified time: 2021-10-04 20:15:13
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont
import os
class WaterMark(object):
def __init__(self, OperationFilename=".", output_dir="watermark", textSize=10, watermarkText=" 水印 ", textColor="#ffffff", system=False, winfontfile=r"C:\Windows\Fonts\STZHONGS.ttf", macfontfile="/System/Library/Fonts/PingFang.ttc"):
self.OperationFilename = OperationFilename
self.output_dir = output_dir
self.textSize = textSize
self.watermarkText = watermarkText
self.textColor = textColor
self.system = system
self.winfontfile = winfontfile
self.macfontfile = macfontfile
def mkdirs(self):
if not os.path.exists(self.output_dir):
os.makedirs(self.output_dir)
print(f" 資料夾 {self.output_dir} 已經自動為你建立,圖片將儲存到: {self.output_dir}")
else:
print(f" 資料夾外匯跟單gendan5.com {self.output_dir} 已經存在,圖片將儲存到: {self.output_dir}")
def system_font(self):
if not self.system:
return ImageFont.truetype(self.textSize, encoding="utf-8")
if self.system.upper() == "MAC":
# FontFilePath = "/System/Library/Fonts/PingFang.ttc"
return ImageFont.truetype(font=self.macfontfile, size=self.textSize, encoding="utf-8")
elif self.system.upper() == "WINDOWS":
# FontFilePath = r"C:\Windows\Fonts\STZHONGS.ttf"
return ImageFont.truetype(font=self.winfontfile, size=self.textSize, encoding="utf-8")
def parsepath(self):
path_lst = []
# a = os.walk("tips_3/")
root, dirs, files = next(os.walk(self.OperationFilename))
# root, dirs, files = next(os.walk("tips_3/"))
# print(list(a))
for item in files:
file_path = os.path.join(root, item)
# self.process_file(file_path)
path_lst.append(file_path)
return path_lst
def process_file(self, file_path):
img = cv2.imread(file_path)
image_shape = img.shape
height = image_shape[0]
width = image_shape[1]
# print(img.size)
if (isinstance(img, numpy.ndarray)):
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(img)
fontStyle = self.system_font()
# 繪製文字
# textColor = (168, 121, 103)
draw.text((width/2, height-30), self.watermarkText, self.textColor, font=fontStyle)
# draw.text((width/2, height-30), self.watermarkText, fill=self.textColor, font=fontStyle)
# 轉換回 OpenCV 型別
img2 = cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
# 儲存圖片
file_name = file_path.split("/")[-1]
cv2.imwrite(os.path.join(self.output_dir, file_name), img2)
print(f"proceed {file_path}")
def main(self):
self.mkdirs()
path_lst = self.parsepath()
# print(path_lst)
for path in path_lst:
self.process_file(path)
if __name__ == '__main__':
run = WaterMark(
OperationFilename="tips_3/",
output_dir="image_watermark",
textSize=10,
watermarkText="@ 黃家寶 |
textColor="gray",
system="Windows",
winfontfile="JiZiJingDianKaiTiJianFan-.ttf")
run.main()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2794802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 萬能程式碼模版:爬蟲程式碼篇Python爬蟲
- Python批量圖片識別並翻譯——我用python給女朋友翻譯化妝品標籤Python
- 別再自己摳圖了,Python用5行程式碼實現批量摳圖Python行程
- 搜狗數字家庭醫生AI技術秀翻「我是未來」全場AI
- 推薦一款 Python 神器,5 行 Python 程式碼 實現一鍵批量扣圖Python
- Python批量處理圖片Python
- python批量ppt轉圖片,pdf轉圖片,word轉圖片指令碼Python指令碼
- 根據業務摸索出的一個selenium程式碼模版(python)Python
- 70 行 python 程式碼實現桌布批量下載Python
- 10 行 Python 程式碼,批量壓縮圖片 500 張,簡直太強大了Python
- 批量生成100萬張小程式碼?瞭解一下。
- Python tkinter 實現 指令碼工具 GUI模版Python指令碼GUI
- 80行Python程式碼搞定全國區劃程式碼Python
- php+WebUploader圖片批量上傳PHPWeb
- 用python實現簡單的線上翻譯程式Python
- win系統下git程式碼批量克隆,批量更新Git
- 萬能碼的碼上付來襲(安全掃碼專業委員會)
- 命令列批量截圖Node指令碼命令列指令碼
- 【Python】批量給圖片增加水印工具Python
- Python新手教程:40行python程式碼寫一個桌面翻譯器Python
- python自學,小知識程式碼,能飛天的小程式碼Python
- 批量修改OC類名指令碼 -- python指令碼Python
- 萬能的Python,還能用來製作高大上的進度條?Python
- 【python海龜畫圖】程式碼整理Python
- 5行Python程式碼就能實現刷爆全網的動態條形圖!Python
- 有道翻譯最新爬蟲程式碼-基於Python3爬蟲Python
- 萬能碼免費上門安裝(安全掃碼專業委員會)
- 萬能程式語言“Python”的五大主要用途!Python
- 美圖秀秀怎麼摳圖?美圖秀秀對圖片進行圓形摳圖的教程
- 小程式 模版訊息
- Elasticsearch批量匯入資料指令碼(python)Elasticsearch指令碼Python
- 改改Python程式碼,執行速度還能提升6萬倍,Science:先別想摩爾定律了Python
- 三十行程式碼教你批量爬取某網站妹紙圖行程網站
- ??Mybatis原始碼我搞透了,面試來問吧!寫了134個原始碼類,1.03萬行程式碼!MyBatis原始碼面試行程
- 美圖秀秀怎麼給圖片新增背景?美圖秀秀給圖片新增背景的教程
- 圖片不能批量上傳 這點不太好
- VS2010自定義模版全過程
- Python帶你跨年!用Python送你一場跨年煙花秀Python