当前位置: 首页 > news >正文

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

背景需求:

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.dtcms.com/a/112219.html

相关文章:

  • ROS订阅相机图像识别颜色并发布识别信息
  • 【进收藏夹吃灰】Python基础学习指南
  • 【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么
  • java 局部内部类
  • Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】
  • DPDI版本升级说明
  • AI提示词:分享卡片生成器
  • 浅析 Spring AI 与 Python:企业级 AI 开发的技术分野
  • 在Git中如何处理冲突?
  • 目前主流OCR/语义理解/ASR
  • 使用mcp自定义编写mcp tool,使用 conda 启动,在cline中配置使用
  • MOM成功实施分享(八)汽车活塞生产制造MOM建设方案(第一部分)
  • fastGPT—前端开发获取api密钥调用机器人对话接口(HTML实现)
  • GIt 分布式版本控制系统
  • ND4J的MemoryWorkspace
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • 【FPGA基础学习】状态机思想实现流水灯
  • 推理模型与普通大模型如何选择?
  • vue组件开发:什么是VUE组件?
  • Redis核心机制-缓存、分布式锁
  • selectdb修改表副本
  • leetcode51-N皇后
  • SpringBoot异步任务实践指南:提升系统性能的利器
  • 《P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题》
  • 数据集(Dataset)和数据加载器(DataLoader)-pytroch学习3
  • MySQL 索引原理
  • Koordinator-NodeInfoCollector
  • 微服务架构: SpringCloud服务注册与发现详解
  • P17_ResNeXt-50
  • Apache Struts2 漏洞(CVE-2017-5638)技术分析