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实现代码行数统计示例分享
Feb 10 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
python用plt画图时,cmp设置方法
Dec 13 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Django中提供的6种缓存方式详解
Aug 05 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
解决python的空格和tab混淆而报错的问题
Feb 26 Python
解析python中的jsonpath 提取器
Jan 18 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常用Output和ptions/Info函数集介绍
2013/06/19 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
实例讲解php实现多线程
2019/01/27 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
用js实现in_array的方法
2013/11/05 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
js使用心得分享
2015/01/13 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
点球小游戏python脚本
2018/05/22 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Pytorch之contiguous的用法
2019/12/31 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
为什么要做架构设计
2015/07/08 面试题
专科文秘应届生求职信
2013/11/18 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
龙门石窟导游词
2015/02/02 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
Nginx缓存设置案例详解
2021/09/15 Servers
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技