溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用Python怎么在圖片的指定位置添加水印

發(fā)布時間:2021-03-04 14:22:58 來源:億速云 閱讀:385 作者:Leah 欄目:開發(fā)技術(shù)

利用Python怎么在圖片的指定位置添加水???相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

python可以做什么

Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

(一)功能實(shí)現(xiàn)效果:

選擇文件的效果:

利用Python怎么在圖片的指定位置添加水印

利用Python怎么在圖片的指定位置添加水印

標(biāo)記預(yù)加水印的位置:

利用Python怎么在圖片的指定位置添加水印

利用Python怎么在圖片的指定位置添加水印

(二)Python代碼:

# -*l- coding:utf-8 *
import os, io, sys, re, time, json
from pandas import array
import matplotlib.backends.backend_tkagg
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
#from matplotlib.pyplot import imshow, ginput
from PIL import Image, ImageEnhance, ImageFilter
import wx
import numpy as np
import random
class DirDialog(wx.Frame):
 
  def __init__(self):
    """Constructor"""
    wx.Frame.__init__(self, None, -1, u"文件夾選擇對話框")
    b = wx.Button(self, -1, u"請選擇圖片")
    self.Bind(wx.EVT_BUTTON, self.OnButton, b)

  def OnButton(self, event):
    
    # file_wildcard = "Paint files(*.paint)|*.paint|All files(*.*)|*.*"
    dlg = wx.FileDialog(self, u"選擇文件夾", style=wx.DD_DEFAULT_STYLE)
    if dlg.ShowModal() == wx.ID_OK:
      jpegname = dlg.GetPath() # 文件夾路徑
      print(jpegname)
      np.savez('dir.npz', k_a=str(jpegname))

    dlg.Destroy()


def sealmark(img_seal, img_new):
  try:
    data_a = np.load('dir.npz')#保存地址數(shù)據(jù)
    img_source = str(data_a['k_a']) # 原圖片的地址
    im1 = Image.open(img_source)
    plt.imshow(im1)
    xy = plt.ginput(1)
    xo = xy[0][0]
    yo = xy[0][1]

    ks = im1.size[1] * 0.000478
    wm = Image.open(img_seal)
    wm = wm.resize((int(wm.width * ks), int(wm.height * ks))) # wm.with * k=280 * ks
    layer = Image.new('RGBA', im1.size, (0, 0, 0, 0))
    layer.paste(wm, (int(xo), int(yo)))
    newIm = Image.composite(layer, im1, layer)
    newIm.save(img_new)
    print(img_seal)

  except Exception as e:
    print(">>>>>>>>>>> sealMark EXCEPTION: " + str(e))
    return False
  else:
    return True


if __name__ == '__main__':
  frame = wx.App()
  app = DirDialog()
  app.Show()
  frame.MainLoop()
  sealmark("水印\水印" + str(random.randrange(10)) + ".png", "after_seal.jpg") #random.randrange(10):隨機(jī)在水印庫中挑選一張PNG水印圖片

(三)Python打包成exe程序:

在終端里輸入pyinstaller -F -w add_seal.py

C:\Users\Administrator\Desktop\seal>pyinstaller -F -w add_seal.py

(1)出現(xiàn)以下的打包成功信息:

利用Python怎么在圖片的指定位置添加水印

利用Python怎么在圖片的指定位置添加水印

(2)\dist\文件夾出現(xiàn)exe文件:

利用Python怎么在圖片的指定位置添加水印

(3)把exe文件放在主工作區(qū)文件夾,并雙擊運(yùn)行。

利用Python怎么在圖片的指定位置添加水印

利用Python怎么在圖片的指定位置添加水印

(4)成功!

(5)PS:給EXE文件加圖標(biāo)。

1、找一個ICO格式的圖標(biāo)文件:“redseal.ico”,放在項(xiàng)目文件夾內(nèi)。

利用Python怎么在圖片的指定位置添加水印

2、加redseal.ico,進(jìn)行打包exe。

pyinstaller -F -w -i redseal.ico add_seal.py

3、移動exe的位置,就會出現(xiàn)圖標(biāo)。

利用Python怎么在圖片的指定位置添加水印

看完上述內(nèi)容,你們掌握利用Python怎么在圖片的指定位置添加水印的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI