使用python實現圖片增加水印


處於某些業務需求需要對一些特定的圖片增加水印,於是去了解了PIL這個庫,可以完美的解決這個問題

實現效果如下

 

 

安裝模塊

pip3 install pillow

 

具體代碼如下

from PIL import Image, ImageDraw, ImageFont

imageFile = "./timg_3.jpg"
imageInfo = Image.open(imageFile)
fontOne = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 100)
fontTwo = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 100)

draw = ImageDraw.Draw(imageInfo)
print(imageInfo.size)
draw.text((imageInfo.size[0] / 2, imageInfo.size[1] / 2), u"這是一個測試圖片", fill=(255, 0, 0), font=fontOne)
draw.text((imageInfo.size[0] / 2, imageInfo.size[1] / 2 + 300), u"等會去看電影", fill=(134, 153, 153), font=fontOne)

imageInfo.show()
# imageInfo.save(r"./image/target01.JPG")
print("success")

 

代碼很簡單,下面具體講講上面每個方法的使用以及參數的意義:

from PIL import Image, ImageDraw, ImageFont # 從PIL中導包

imageFile :需要添加文字的圖片地址(可以是相對地址也可以是絕對地址)
imageInfo = Image.open(imageFile):使用image.open()打開圖像

fontOne = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 100) # 水印使用系統字體
fontTwo = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 100) # 水印使用系統字體

 

使用 draw = ImageDraw.Draw(imageInfo)實例化一個可寫對象

draw.text((imageInfo.size[0] / 2, imageInfo.size[1] / 2), u"這是一個測試圖片", fill=(255, 0, 0), font=fontOne) # 水印加載的位置
draw.text((imageInfo.size[0] / 2, imageInfo.size[1] / 2 + 300), u"等會去看電影", fill=(134, 153, 153), font=fontOne)

 

draw.text()方法中的參數解析

  • xy: 表示文字寫入圖片中的位置(注意:這里的坐標需為一個元組)

  • text: 加到圖片上的文字

  • fill: 水印文字的顏色(范圍:0-255,0-255,0-255)

  • font: 水印使用的自已

imageInfo.show(): 預覽圖片
imageInfo.save(r"./image/target01.JPG"):保存加入水印的圖片

 

更多關於PIL庫的使用參照PIL的用法

 

本文參考鏈接:

https://blog.csdn.net/danieljackz/article/details/94999416

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM