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操作mysql中文显示乱码的解决方法
Oct 11 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python中atexit模块的基本使用示例
Jul 08 Python
python利用lxml读写xml格式的文件
Aug 10 Python
scrapy爬虫完整实例
Jan 25 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
对python中的乘法dot和对应分量相乘multiply详解
Nov 14 Python
python使用rsa非对称加密过程解析
Dec 28 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 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时间戳使用实例代码
2008/06/07 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
python:socket传输大文件示例
2017/01/18 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python构建图像分类识别器的方法
2019/01/12 Python
详解Python循环作用域与闭包
2019/03/21 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
python中adb有什么功能
2020/06/07 Python
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
《日月潭》教学反思
2014/02/28 职场文书
职工代表大会主持词
2014/04/01 职场文书
篮球社团活动总结
2014/06/27 职场文书
教学副校长工作总结
2015/08/13 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
小学班级标语口号大全
2015/12/26 职场文书