Python使用Image函数批量给图片添加全屏45度透明logo图片水印

本文介绍如何使用Python的Image库,为大量图片批量添加45度角透明Logo作为水印,详细阐述了实现过程和关键代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from PIL import Image
from glob import glob
import os
#找到文件内jpg和PNG后缀的文件
image_path = glob('*[jpg,png]')
#保存处理后文件的文文件夹
save_path  =  '.\\有水印图片'
#logo文件所在路径
logo_path = '.\\logo\水印.png'
#定义logo满屏处理函数
def make_logo(logo_path=logo_path):
    #打开logo文件
    logo = Image.open(logo_path)
    #获取logo文件的宽高
    w,h = logo.size
    #找到对角线数据,并且取整
    dia = round(pow(pow(w,2)+pow(h,2),0.5))
    #定义box左上角坐标和右下角坐标
    x 
### 使用 Python 和 UiAutomator 实现图像识别与自动点击 对于想要利用 Python 结合 UiAutomator 来完成基于图像识别的自动点击操作,可以采用 `uiautomator2` 库配合 OCR 技术来达成目标。由于原生 UiAutomator 可能无法直接支持通过图片进行交互的操作[^1]。 #### 安装依赖库 为了能够顺利执行此功能,需先安装必要的 Python 库: ```bash pip install uiautomator2 pillow pytesseract opencv-python ``` 这些包提供了访问 Android 设备的能力以及处理图像和文字识别的功能。 #### 初始化设备连接 确保已按照说明完成了初始化工作: ```python import uiautomator2 as u2 d = u2.connect() # 连接到默认设备或指定 IP 地址 d = u2.connect('device_ip') print(d.info) ``` 这段代码用于建立到测试手机或其他安卓终端之间的通信链路,并打印基本信息验证连接状态。 #### 获取屏幕截图并保存为文件 接下来是从屏幕上捕获当前显示的画面作为后续匹配的基础素材: ```python from PIL import Image import io def capture_screen(device, save_path='screenshot.png'): screen_data = device.screenshot(format="raw") img = Image.open(io.BytesIO(screen_data)) img.save(save_path) capture_screen(d) ``` 这里定义了一个函数用来截取整个屏幕的内容,并将其存储至本地磁盘上以便进一步分析。 #### 执行图像模板匹配查找位置坐标 当拥有了待检测的目标图案之后就可以运用 OpenCV 的模版匹配算法定位其所在之处: ```python import cv2 import numpy as np def find_image_position(template_file, screenshot_file): template = cv2.imread(template_file, 0) screenshot = cv2.imread(screenshot_file, 0) res = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) top_left = max_loc h, w = template.shape[:2] center_point = (top_left[0]+w//2, top_left[1]+h//2) return center_point if max_val >= 0.8 else None position = find_image_position('target_icon.png', 'screenshot.png') if position is not None: print(f"Found target at {position}") else: print("Target image not found.") ``` 上述脚本实现了读入两张灰图形式的小图标(即要找的对象)和大背景(即之前拍下的全屏快照),接着调用 `cv2.matchTemplate()` 函数计算相似矩阵;最后依据阈值判断是否存在足够接近的结果,若有则返回中心点座标给下一步动作指令使用[^2]。 #### 发送触摸事件模拟点击行为 一旦确认了对象的确切方位就可通过发送相应的手势命令让应用程序响应用户的意图: ```python if position is not None: x, y = position d.click(x=x, y=y) # 对应于找到的位置触发单击事件 ``` 以上就是一套完整的流程介绍,在实际应用过程中可能还需要考虑更多细节因素比如权限管理、异常情况处理等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_50980171

你的鼓励就是对我莫大的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值