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实现比较两段文本不同之处的方法
May 30 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
Python批量修改文本文件内容的方法
Apr 29 Python
python数据结构之列表和元组的详解
Sep 23 Python
PyQT实现多窗口切换
Apr 20 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
python和c语言哪个更适合初学者
Jun 22 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
python 中的jieba分词库
Nov 23 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实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery处理XML文件的几种方法
2016/06/14 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Python线程下使用锁的技巧分享
2018/09/13 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
学生会招新策划书
2014/02/14 职场文书
副处级干部考察材料
2014/05/17 职场文书
客服专员岗位职责
2015/02/10 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
导游词之临安白水涧
2019/11/05 职场文书