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操作CouchDB数据库简单示例
Mar 10 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
详解Python中for循环的使用方法
May 14 Python
python网络编程之文件下载实例分析
May 20 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
详解python中@的用法
Mar 27 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
如何用Python绘制3D柱形图
Sep 16 Python
python自然语言处理之字典树知识总结
Apr 25 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中ob函数缓冲机制深入理解
2015/08/03 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
Jquery中"$(document).ready(function(){ })"函数的使用详解
2013/12/30 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python音频处理用到的操作的示例代码
2017/10/27 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
基于Django统计博客文章阅读量
2019/10/29 Python
快速查找Python安装路径方法
2020/02/06 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
python中列表的含义及用法
2020/05/26 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
大一自我鉴定范文
2013/12/27 职场文书
文科生自我鉴定
2014/02/15 职场文书
教师节活动主持词
2014/04/02 职场文书
宣传工作经验材料
2014/06/02 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python