Python实现图片指定位置加图片水印(附Pyinstaller打包exe)

 更新时间:2021年03月04日 08:36:47   作者:傅佑  
这篇文章主要介绍了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')#保存地址数据
    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):随机在水印库中挑选一张PNG水印图片

(三)Python打包成exe程序:

在终端里输入pyinstaller -F -w add_seal.py

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

(1)出现以下的打包成功信息:

在这里插入图片描述

在这里插入图片描述

(2)\dist\文件夹出现exe文件:

在这里插入图片描述

(3)把exe文件放在主工作区文件夹,并双击运行。

在这里插入图片描述

在这里插入图片描述

(4)成功!

(5)PS:给EXE文件加图标。

1、找一个ICO格式的图标文件:“redseal.ico”,放在项目文件夹内。

ico格式的图标

2、加redseal.ico,进行打包exe。

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

3、移动exe的位置,就会出现图标。

在这里插入图片描述

到此这篇关于Python实现图片指定位置加图片水印(附:Pyinstaller打包成exe格式)的文章就介绍到这了,更多相关Python实现图片指定位置加图片水印(附:Pyinstaller打包成exe格式)内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python发送邮件测试报告操作实例详解

    Python发送邮件测试报告操作实例详解

    这篇文章主要介绍了Python发送邮件测试报告操作,结合实例形式较为详细的分析了Python邮件发送相关模块使用及操作注意事项,需要的朋友可以参考下
    2018-12-12
  • ​如何愉快地迁移到 Python 3

    ​如何愉快地迁移到 Python 3

    如今 Python 成为机器学习和大量使用数据操作的科学领域的主流语言; 它拥有各种深度学习框架和完善的数据处理和可视化工具。这篇文章主要介绍了迁移到 Python 3的方法,需要的朋友可以参考下
    2019-04-04
  • python字典序问题实例

    python字典序问题实例

    这篇文章主要介绍了python字典序问题,是字符串操作一个比较典型的应用,需要的朋友可以参考下
    2014-09-09
  • 由Python编写的MySQL管理工具代码实例

    由Python编写的MySQL管理工具代码实例

    这篇文章主要介绍了由Python编写的MySQL管理工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python线程池(threadpool)模块使用笔记详解

    python线程池(threadpool)模块使用笔记详解

    这篇文章主要介绍了python线程池(threadpool)模块使用笔记详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • django中使用memcached示例详解

    django中使用memcached示例详解

    这篇文章主要为大家介绍了django中使用memcached示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python利用re模块实现简易分词(tokenization)

    Python利用re模块实现简易分词(tokenization)

    分词(tokenization)任务是Python字符串处理中最为常见任务了。本文将利用re模块实现简易tokenizer,文中的示例代码讲解详细,需要的可以参考一下
    2022-04-04
  • python字符串不可变数据类型

    python字符串不可变数据类型

    这篇文章主要介绍了python字符串不可变数据类型,下文关于python字符串不可变数据类型相关资料展开的内容主要有查找子串及数量、字符串的替换、分割以及合并、删除侧边的空白等内容,需要的小伙伴可以参考一下
    2022-02-02
  • Python中文纠错的简单实现

    Python中文纠错的简单实现

    这篇文章主要是用 Python 实现了简单的中文分词的同音字纠错,目前的案例中只允许错一个字,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 简单了解Java Netty Reactor三种线程模型

    简单了解Java Netty Reactor三种线程模型

    这篇文章主要介绍了简单了解Java Netty Reactor三种线程模型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论