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 读写文件和file对象的方法(推荐)

    Python 读写文件和file对象的方法(推荐)

    下面小编就为大家带来一篇Python 读写文件和file对象的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • python图像处理之镜像实现方法

    python图像处理之镜像实现方法

    这篇文章主要介绍了python图像处理之镜像实现方法,实例分析了镜像的实现原理与具体操作方法,需要的朋友可以参考下
    2015-05-05
  • python第三方库visdom的使用入门教程

    python第三方库visdom的使用入门教程

    Visdom:一个灵活的可视化工具,可用来对于 实时,富数据的 创建,组织和共享,本文主要介绍了python第三方库visdom的使用入门教程,分享给大家,感兴趣的可以了解一下
    2021-05-05
  • Python设计模式创建型原型模式

    Python设计模式创建型原型模式

    这篇文章主要介绍了Python原型模式,原型模式即Prototype Pattern,指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,下面我们就来看具体的介绍内容吧,希望对你的学习有所帮助
    2022-02-02
  • django_orm查询性能优化方法

    django_orm查询性能优化方法

    这篇文章主要介绍了django_orm查询性能优化方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python OpenCV实现人物动漫化效果

    Python OpenCV实现人物动漫化效果

    这篇文章主要介绍了利用Python和OpenCV实现人物的动漫化特效,文中的示例代码讲解详细,对我们学习Python和OpenCV有一定的帮助,需要的可以了解一下
    2022-01-01
  • 利用python批量给云主机配置安全组的方法教程

    利用python批量给云主机配置安全组的方法教程

    这篇文章主要给大家介绍了利用python批量给云主机配置安全组的方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • python人工智能使用RepVgg实现图像分类示例详解

    python人工智能使用RepVgg实现图像分类示例详解

    这篇文章主要介绍了python人工智能使用RepVgg实现图像分类示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • windows下Virtualenvwrapper安装教程

    windows下Virtualenvwrapper安装教程

    这篇文章主要为大家详细介绍了windows下Virtualenvwrapper安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详解Python爬取并下载《电影天堂》3千多部电影

    详解Python爬取并下载《电影天堂》3千多部电影

    这篇文章主要介绍了Python爬取并下载《电影天堂》3千多部电影,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论