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


Posted in Python onMarch 04, 2021

(一)功能实现效果:

选择文件的效果:

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

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

标记预加水印的位置:

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

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

(二)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)出现以下的打包成功信息:

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

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

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

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

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

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

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

(4)成功!

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

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

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

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

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

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

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

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

Python 相关文章推荐
Python中set与frozenset方法和区别详解
May 23 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
python 自定义装饰器实例详解
Jul 20 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python 指定源路径来解决import问题的操作
Mar 04 #Python
python源文件的字符编码知识点详解
Mar 04 #Python
python3判断IP地址的方法
Mar 04 #Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 #Python
python和opencv构建运动检测器的实现
Mar 03 #Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 #Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 #Python
You might like
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
python requests.post带head和body的实例
2019/01/02 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Django数据统计功能count()的使用
2020/11/30 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
中科软测试工程师面试题
2012/06/16 面试题
大学生表扬信范文
2014/01/09 职场文书
公积金转移接收函
2014/01/11 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
公司员工管理制度
2015/08/04 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
python使用glob检索文件的操作
2021/05/20 Python