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 文件和输入输出小结
Oct 09 Python
python控制台英汉汉英电子词典
Apr 23 Python
Python只用40行代码编写的计算器实例
May 10 Python
python正则表达式的使用
Jun 12 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
Python实现抢购IPhone手机
Feb 07 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
python 字符串追加实例
Jul 20 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
Syphon 使用方法
2021/03/03 冲泡冲煮
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP 错误之引号中使用变量
2009/05/04 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript中的几个运算符
2007/06/29 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
修复ie8&chrome下window的resize事件多次执行
2011/10/20 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
axios实现文件上传并获取进度
2020/03/25 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
python3 flask实现文件上传功能
2020/03/20 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
用django设置session过期时间的方法解析
2019/08/05 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
行政撤诉申请书
2015/05/18 职场文书
新生开学寄语大全
2015/05/28 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
详解Go与PHP的语法对比
2021/05/29 PHP