【教学类-102-02】自制剪纸图案(留白边、沿线剪)02——Python+PS自动化添加虚线边框

news2025/4/6 7:16:17

背景需求:

01版本实现了对透明背景png图案边界线的扩展,黑线实线描边

【教学类-102-01】自制剪纸图案(留白边、沿线剪)01-CSDN博客文章浏览阅读974次,点赞15次,收藏7次。【教学类-102-01】自制剪纸图案(留白边、沿线剪)01 https://blog.csdn.net/reasonsummer/article/details/146923140?spm=1011.2415.3001.5331

但是我希望图案边缘是点状

图案边缘是虚线

搜索,发现PS可以制作虚线边框

ps虚线框怎么做

https://jingyan.baidu.com/article/b7001fe118b2714f7382dd5d.htmlhttps://jingyan.baidu.com/article/b7001fe118b2714f7382dd5d.html

PS将用路径选区,制作虚线边框。

解决思路:

1、python模拟人工,在PS软件中重复按快捷键,对图案进行边缘扩展、制作选区、制作虚线描边。

2、uibot可以自动查找坐标位置,但python不行,需要一个个测试坐标位置

'''
用Python模拟UIBOT上传园园通照片
需要获取界面上按钮的坐标
'''
import pyautogui
import time

# 运行后延时,让鼠标有时间放到指定的按钮上,再获取坐标
time.sleep(2)
# # 获取鼠标当前位置的坐标
x, y = pyautogui.position()

# # 打印坐标
print(f"Mouse position: ({x}, {y})")

3、预先打开PS,将各种页面参数设置好

本次我需要虚线边框3磅黑线,透明背景

4、图片是白色背景的青蛙全图png

代码展示:

'''
前期工作:
1、打开PS,导入一张图片,设置参数(右侧的路径开好,形状的设置做好)
2、英文状态

模版、反选、修改、拓展、右侧路径、左侧钢笔,顶部形状,点的粗细,线条虚线还是点
然后再批量修改图片(模拟点击鼠标位置)
deepseek 阿夏
2025年0404
'''


import os,time
import pyautogui
import pyperclip
import re
# time.sleep(2)
import win32api
import win32con


time.sleep(5)

# 读取文件名称和路径
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\20250401边缘线剪纸'
folder_path = path +r'\02_01青蛙白色原图'
new_path=path +r'\02_02青蛙白色点图'
os.makedirs(new_path,exist_ok=True)

file_paths = [os.path.join(folder_path, file_name) for file_name in os.listdir(folder_path)]
print(file_paths)
# 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\20250322班级园园通上传\\特色美术\\19 第19周 主题知识(2025.1.6——2025.1.17)(中2班下学期)-寒冷的冬天1.png']

# 不同的切片方式
file_names = os.listdir(folder_path)
print(file_names)
# 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\20250322班级园园通上传\\特色美术\\19 第19周 主题知识(2025.1.6——2025.1.17)(中2班下学期)-寒冷的冬天1.png']



for i in range(len(file_paths)):

        # 打开第一图
    pyautogui.moveTo(540, 228)
    pyautogui.click()    

    # 模拟按下 Ctrl
    # pyautogui.hotkey('Ctrl', 'O')
    win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0)
    # 模拟按下 M
    win32api.keybd_event(ord('O'), 0, 0, 0)
    # 模拟释放 M
    win32api.keybd_event(ord('O'), 0, win32con.KEYEVENTF_KEYUP, 0)
    # 模拟释放 Ctrl
    win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)
    # # 打开图片需要时间
    time.sleep(3)


    # 输入文件夹网址,复制中文内容到剪贴板
    pyperclip.copy(folder_path)
    # 黏贴图片地址
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    # 打开(回车打开图片)
    pyautogui.press('enter')
    # 图片显示需要时间
    time.sleep(1)
    
    # 输入图片名称,复制中文内容到剪贴板
    pyperclip.copy(file_names[i])
    # 黏贴图片地址
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    # 打开(回车打开图片)
    pyautogui.press('enter')
    # 图片显示需要时间
    time.sleep(1)

    # 选取魔棒   (魔棒快捷键:按键W)
    # 按下并释放 W 键
    pyautogui.press('w')  # 按下并立即释放
    # 按住 W 键不放(常用于游戏中的持续移动)
    pyautogui.keyDown('w')  # 按下不放
    # ... 这里可以添加延迟或其他操作 ...
    pyautogui.keyUp('w')   # 释放按键

    # 选取图片左上角的白色    
    pyautogui.moveTo(506, 219)
    pyautogui.click()
    time.sleep(0.5)

    # 反选  按下 Shift+Ctrl+I
    pyautogui.hotkey('shift', 'ctrl', 'I')
    time.sleep(1)
    # 边缘扩展
    # 按下 选择 
    pyautogui.hotkey('alt', 's')
    time.sleep(0.5)
    # 按下 修改
    pyautogui.press('M')  # 按下并立即释放
    time.sleep(0.5)
    # 按下 拓展(
    pyautogui.press('E')  # 按下并立即释放
    time.sleep(0.5)
    # 已经前期设置好白色的宽度)
    # 确认
    pyautogui.press('enter')
    # 图片显示需要时间
    time.sleep(2)


    # 主页面上,右侧已经点好了路径
    # 选取图片左上角的白色    
    pyautogui.moveTo(1800, 1037)
    pyautogui.click()
    time.sleep(2)

    # 选取左边的钢笔    MM
    pyautogui.moveTo(17, 468)
    pyautogui.click()
    time.sleep(2)

    # 顶部是形状,改成路径
    # 点一下形状,出现三个,选第二个路径
    pyautogui.moveTo(84, 43)
    pyautogui.click()
    time.sleep(0.5)
    # 选第二个路径
    pyautogui.moveTo(85,81)
    pyautogui.click()
    time.sleep(0.5)

    # 点后面出现的形状按钮(变成灰色填充,边线是虚线)
    pyautogui.moveTo(355,43)
    pyautogui.click()
    time.sleep(0.5)

    # 点左边的路径,出现三个,选第二个路径
    pyautogui.moveTo(84, 43)
    pyautogui.click()
    time.sleep(0.5)
    # 选第一个形状
    pyautogui.moveTo(92,65)
    pyautogui.click()
    time.sleep(0.5)

    # 选白色,改成透明
    pyautogui.moveTo(198, 44)
    pyautogui.click()
    time.sleep(0.5)
    #,改成透明(无颜色)
    pyautogui.moveTo (111, 84)
    pyautogui.click()
    time.sleep(0.5)


    # 按回车,出现保存按钮
    pyautogui.press('enter')
    # 图片显示需要时间
    time.sleep(2)

    # 另存为
    

    # 方法1:使用 hotkey 函数(推荐)
    pyautogui.hotkey('shift', 'ctrl', 's')

    # 方法2:分步操作(更精确控制)
    pyautogui.keyDow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OFP--2018

文章目录 AbstractIntroductionRelated Work2D object detection3D object detection from LiDAR3D object detection from imagesIntegral images 3D Object Detection ArchitectureFeature extractionOrthographic feature transformFast average pooling with integral imag…

CentOS-查询实时报错日志-查询前1天业务报错gz压缩日志

最新版本更新 https://code.jiangjiesheng.cn/article/364?fromcsdn 推荐 《高并发 & 微服务 & 性能调优实战案例100讲 源码下载》 1. 查询实时报错日志 物理路径(带*的放在靠后,或者不用*) cd /home/logs/java-gz-log-dir &am…

ETF 场内基金是什么?佣金最低又是多少呢?

嘿,朋友们,大家好啊,我是StockMasterX,今天咱们就坐下来慢慢聊聊这个话题,ETF 场内基金到底是个啥东西,它的佣金最低能到多少,真的是个值得深挖的问题。 说起ETF,我还记得刚入行那会…

[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine

PMC-LLaMA:构建医学开源语言模型 摘要 最近,大语言模型在自然语言理解方面展现了非凡的能力。尽管在日常交流和问答场景下表现很好,但是由于缺乏特定领域的知识,这些模型在需要精确度的领域经常表现不佳,例如医学应用…

26考研——线性表(2)

408答疑 文章目录 一、线性表的定义和基本操作二、线性表的顺序表示三、 线性表的链式表示四、 顺序表和链表的比较五、参考资料鲍鱼科技课件26王道考研书 六、总结顺序表总结顺序表特点深入掌握顺序表的管理方式 单链表总结双循环链表总结 一、线性表的定义和基本操作 文章链…

低代码开发平台:飞帆画 echarts 柱状图

https://fvi.cn/711 柱状图这个控件是由折线图的控件改过来的,在配置中,单选框选择柱状图就行了。

PowerPhotos:拯救你的Mac照片库,告别苹果原生应用的局限

如果你用Mac管理照片,大概率被苹果原生「照片」应用折磨过——无法真正并行操作多个图库。每次切换图库都要关闭重启,想合并照片得手动导出导入,重复文件更是无处可逃…… 直到我发现了 PowerPhotos,这款专为Mac设计的照片库管理…

Linux 下 日志系统搭建全攻略

目录 一、引言 二、日志系统基础 日志级别 日志输出格式 三、创建日志所需函数 认识可变参数 ​编辑 获取时间的函数 小结 四、创建日志 一、引言 在 Linux 环境中开发 C/C 程序时,日志系统是不可或缺的一部分。它不仅有助于调试程序、排查问题&#xff…

Linux系统安装Postgre和Postgis教程

卸载 如果之前没装过可以忽略这一步 卸载前记得备份数据库数据(如果还需要的话)!!! 一、删除 Docker 安装的 PostgreSQL/PostGIS 1. 停止并删除容器 # 查看所有容器 docker ps -a | grep postgres# 停止并删除容器(替换为实际…

LXC 导入多Linux系统

前提要求 ubuntu下安装lxd 参考Rockylinux下安装lxd 参考LXC 源替换参考LXC 容器端口发布参考LXC webui 管理<

6547网:蓝桥STEMA考试 Scratch 试卷(2025年3月)

『STEMA考试是蓝桥青少教育理念的一部分&#xff0c;旨在培养学生的知识广度和独立思考能力。考试内容主要考察学生的未来STEM素养、计算思维能力和创意编程实践能力。』 一、选择题 第一题 运行下列哪个程序后&#xff0c;飞机会向左移动&#xff1f; ( ) A. …

使用Webpack搭建React项目:从零开始

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

STM32提高篇: CAN通讯

STM32提高篇: CAN通讯 一.CAN通讯介绍1.物理层2.协议层二.STM32CAN外设1.CAN控制器的3种工作模式2.CAN控制器的3种测试模式3.功能框图三.CAN的寄存器介绍1.环回静默模式测试2.双击互发测试四.CAN的HAL代码解读一.CAN通讯介绍 CAN(Controller Area Network 控制器局域网,简称…

25.Reactor

预备知识 std::bind template <class Fn, class... Args>/* unspecified */ bind (Fn&& fn, Args&&... args);解释&#xff1a; std::bind(&TcpServer::Accepter, this, std::placeholders::_1) 这段代码使用了 C11 中的 std::bind 函数&#xff0…

Linux进程间通信——有名管道

一.概念 函数形式&#xff1a;int mkfifo(const char \*filename,mode_t mode); 功能&#xff1a;创建管道文件 参数&#xff1a;管道文件文件名\路径&#xff0c;权限&#xff0c;创建的文件权限仍然和umask有关系。 返回值&#xff1a;创建成功返回0&#xff0c;创建失败返回…

Axure RP9.0教程: 查询条件隐藏与显示(综合了动态面板状态切换及展开收缩效果实现)

文章目录 引言I 原型显示/隐藏搜索框思路步骤详细操作II 若依 ruoyi 显示/隐藏搜索框 & 显示隐藏列自定义设置显示隐藏列显示/隐藏搜索框引言 数据筛选有大量的查询条件时,可以选择查询隐藏效果。 I 原型显示/隐藏搜索框 综合了动态面板状态切换及展开收缩效果实现 思…

【漫话机器学习系列】183.非参数方法(Non-parametric Methods)

非参数方法&#xff08;Non-parametric Methods&#xff09;详解 概述 非参数方法是一类在统计学和机器学习中广泛应用的技术&#xff0c;它的特点是不对特征值和目标值之间的关系做具体的假设。与传统的参数方法&#xff08;如线性回归、逻辑回归等&#xff09;不同&#xf…

智能驾驶中预测模块简介

1.轨迹预测的定义 轨迹预测是自动驾驶系统“感知-预测-规控”流程中的核心环节&#xff0c;位于感知与规划模块之间&#xff0c;起到承上启下的作用。感知系统负责检测道路环境中的动态和静态元素&#xff0c;包括车辆、行人、自行车、交通标志、车道线等&#xff0c;而预测模…

剑指offer经典题型(一)

本期我们将开始进行剑指offer中经典题型的学习。 数组相关 题目1&#xff1a;在一个二维数组中&#xff08;每个一维数组的长度相同&#xff09;&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输…

ctfshow VIP题目限免 版本控制泄露源码2

根据题目提示是版本控制泄露源码 版本控制&#xff08;Version Control&#xff09;是一种在软件开发和其他领域中广泛使用的技术&#xff0c;用于管理文件或项目的变更历史。 主流的版本控制工具&#xff1a; ‌Git‌&#xff1a;目前最流行的分布式版本控制系统。‌SVN‌&am…