Python 实现计算机屏幕水印
2018-02-09 11:11
826 查看
原本有公司提议给业务系统加上水印,工作人员拍照可自动打上水印。同事开玩笑说应该给整个屏幕打上水印——“物理水印”。直接在显示器上设置水印?这不显示,想想python能不能实现,果然有人用python实现过。屏幕出现水印后,各个应用程序仍然可点击操作。
主要模块:
pip install tkinter
pip install pypiwin32
脚本:(文件名:watermark.py)import tkinter, win32api, win32con, pywintypes
def get_replicate_text(text):
i,space,str1,str2 = 0,70,"",""
while (i <= 5):
str1 = str1 + text + " "*space
i = i + 1
str2 = " "*space + str1 + "\n\n\n\n"
str1 = str1 + "\n\n\n\n"
str1 = (str1 + str2) * 5
return str1
mytext = get_replicate_text('KK 笔记')
root = tkinter.Tk()
width = win32api.GetSystemMetrics(0)
height = win32api.GetSystemMetrics(1)
root.overrideredirect(True) #隐藏显示框
root.geometry("+0+0") #设置窗口位置或大小
root.lift() #置顶层
root.wm_attributes("-topmost", True) #始终置顶层
root.wm_attributes("-disabled", True)
root.wm_attributes("-transparentcolor", "white")#白色背景透明
hWindow = pywintypes.HANDLE(int(root.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
label = tkinter.Label(text=mytext,compound = 'left',font=('Times New Roman','15'), fg='#d5d5d5', bg='white')
label.pack() #显示
root.mainloop() #循环
后台执行:pythonw watermark.py效果:
同样可以实现桌面 gif 动态图:
import tkinter, win32api, win32con, pywintypes
root = tkinter.Tk()
root.overrideredirect(True)
root.geometry("+1100+450") #设置窗口位置或大小
root.lift()
root.wm_attributes("-topmost", True)
root.wm_attributes("-disabled", True)
root.wm_attributes("-transparentcolor", "white")#白色背景透明
hWindow = pywintypes.HANDLE(int(root.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
framenum = 30 # gif 的帧数需要确定下来
giffile = 'D:/Python35/mypy/timg.gif' #找一张白色背景的gif,设置白色为透明
frames = [tkinter.PhotoImage(file=giffile,format = 'gif -index %s' % i) for i in range(framenum)]
def update(ind):
if (ind == framenum-1):#
ind = 0
frame = frames[ind]
ind += 1
label.configure(image=frame)
root.after(100, update, ind)
label = tkinter.Label(root,bg='white')#设置白色为透明
label.pack() #显示
root.after(0, update, 0)
root.mainloop() #循环
参考:
How to display text on the screen without a window using Python
Extended Window Styles
主要模块:
pip install tkinter
pip install pypiwin32
脚本:(文件名:watermark.py)import tkinter, win32api, win32con, pywintypes
def get_replicate_text(text):
i,space,str1,str2 = 0,70,"",""
while (i <= 5):
str1 = str1 + text + " "*space
i = i + 1
str2 = " "*space + str1 + "\n\n\n\n"
str1 = str1 + "\n\n\n\n"
str1 = (str1 + str2) * 5
return str1
mytext = get_replicate_text('KK 笔记')
root = tkinter.Tk()
width = win32api.GetSystemMetrics(0)
height = win32api.GetSystemMetrics(1)
root.overrideredirect(True) #隐藏显示框
root.geometry("+0+0") #设置窗口位置或大小
root.lift() #置顶层
root.wm_attributes("-topmost", True) #始终置顶层
root.wm_attributes("-disabled", True)
root.wm_attributes("-transparentcolor", "white")#白色背景透明
hWindow = pywintypes.HANDLE(int(root.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
label = tkinter.Label(text=mytext,compound = 'left',font=('Times New Roman','15'), fg='#d5d5d5', bg='white')
label.pack() #显示
root.mainloop() #循环
后台执行:pythonw watermark.py效果:
同样可以实现桌面 gif 动态图:
import tkinter, win32api, win32con, pywintypes
root = tkinter.Tk()
root.overrideredirect(True)
root.geometry("+1100+450") #设置窗口位置或大小
root.lift()
root.wm_attributes("-topmost", True)
root.wm_attributes("-disabled", True)
root.wm_attributes("-transparentcolor", "white")#白色背景透明
hWindow = pywintypes.HANDLE(int(root.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
framenum = 30 # gif 的帧数需要确定下来
giffile = 'D:/Python35/mypy/timg.gif' #找一张白色背景的gif,设置白色为透明
frames = [tkinter.PhotoImage(file=giffile,format = 'gif -index %s' % i) for i in range(framenum)]
def update(ind):
if (ind == framenum-1):#
ind = 0
frame = frames[ind]
ind += 1
label.configure(image=frame)
root.after(100, update, ind)
label = tkinter.Label(root,bg='white')#设置白色为透明
label.pack() #显示
root.after(0, update, 0)
root.mainloop() #循环
参考:
How to display text on the screen without a window using Python
Extended Window Styles
相关文章推荐
- 《OpenCV 3计算机视觉:Python语言实现》学习笔记——目标跟踪中基本运动检测的思考
- 《OpenCV 3计算机视觉:Python语言实现》(原书第2版)读后感
- Python实现屏幕滑动
- Python实现鼠标在屏幕随机移动操作【Windows/Linux】
- OpenCV 3计算机视觉:Python语言实现(原书第2版) pdf+项目源代码
- VC++实现对远程计算机屏幕的监视
- VC++实现对远程计算机屏幕的监视
- python使用PIL模块实现给图片打水印的方法
- VC++实现对远程计算机屏幕的监视
- opencv3计算机视觉Python语言实现(原书第二版)第三章3.6节缺少BGRPortraCurveFilter()函数
- 《OpenCV3 计算机视觉 Python语言实现》——处理文件、摄像头和图形用户界面
- python:加水印小应用程序的实现
- VC++实现对远程计算机屏幕的监视
- OpenCV 3计算机视觉 Python语言实现(第2版)(含示例代码)
- Python实现屏幕截图的代码及函数详解
- Python实现屏幕截图的两种方式
- OpenCV3计算机视觉Python语言实现(二):处理文件、摄像头和图形用户界面
- python实现远程通过网络邮件控制计算机重启或关机
- Python实现局域网内屏幕广播的技术要点分析
- Python实现屏幕输出进度条的方法