【教学类-89-04】20250130新年篇04——九叠篆印章(篆章生成器+UIBOT+Python)幼儿名字印章

背景需求:

曾经给6位大班幼儿做过一个插入纸盒茶杯,底部有幼儿的姓名印章(李四光印)

【教学类-21-02】20221210《青花茶杯-A4纸插入式纸盒-不同花纹》(大班主题《我是中国人-青花瓷》)_大班青花瓷主题网络图-CSDN博客文章浏览阅读281次。【教学类-21-02】20221210《青花茶杯-A4纸插入式纸盒-不同花纹》(大班主题《我是中国人-青花瓷》)_大班青花瓷主题网络图https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100https://blog.csdn.net/reasonsummer/article/details/128269100

我想让每位孩子都有一个自己名字的"印章"

2024年12月7日 网络查询后,发现"印章"多用"篆书""隶书""楷书"等

因为我经常听到"篆刻",而且篆书排在第一,所以想用篆书

大篆

小篆

九叠篆(塞满,艺术性强、宋代国朝官印)

花鸟篆(文字以花鸟形式替代)

小结:

考虑到操作便利性和艺术性,我选了"九叠篆",四四方方更适合印章效果。

字体下载

测试一:下载白舟九叠篆

复制到font下

问题1:部分字无法用篆刻九叠篆样式写出来

解决1:把名字转成繁体,再用九叠篆(hkkjtr),部分姓氏变成篆体了

问题2:还是有部分姓氏、名字无法转

2、测试二:下载一个图章生成器

有木马,自动删除了,下载不了

3、测试三:"九叠篆"在线字体网,直接做4字印章(2*2)

九叠篆字形在线生成制作印章图 - 九叠篆,国潮私印,书法字典,字体,篆刻,在线转换生成http://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asphttp://jiudiezhuan.com/createseal.asp

(1)字体布局

两个名字:从左向右,从上到下

我希望是从上到下,从右到左(古代右向左),把名字和印章两字调整顺序

三个名字

四个名字

小结:这个在线平台能把孩子们的名字生成四字印章图片,我可以用UIBOT自动将繁体名字复制到这个在线平台里。获取九叠篆印章图案

(2)特殊字体设置

可能1:部分繁体字没有九叠篆字体

我把几个特殊字体输入试试看。好多字的确没有九篆体

可能2:繁体转简体出现九叠篆字体

我把名字改回简体字,再试试,姓氏出来了。那就只有第二个名字没有。

可能3:简繁体都没有的文字请网站开发者设计

这位开发者很厉害,对于不存在的字,他也会愿意设计!,我先手动测试哪些字(简体或繁体)都不存在,需要被设计。

人工搜索后,发现有4个字不存在,需要设计。

等开学后,再光顾网站,看看汉字的九叠篆样式是否存在。

然后写UIBOT代码,自动读取EXCLE的简体字,重新组合字序,下载名字图片。再用Python,进行图案处理(红色转黑色,水平翻转做镜像字,批量调整大小等)。制作成学具。让幼儿把印章图片贴在KT版上,然后沿着线戳洞。制作一个可以按印泥的印章。

感谢这个网站的大神,提供了九叠篆印章的图片!

实验四:已有字拼合出生僻字

考虑到这个网站不挣钱,开发者未必会经常登录并设计,所以我想利用网站上已有的九叠篆字,提取边旁部首,PS合成图片

"琬":王字旁的"环玲珠珍"

让AI写一点王字旁的字

关键词:王字旁的字,只要字,表格形式呈现,

放到搜索字体里面,一共19字

可以发现 王字旁有三种写法

其中"珍"的"王"这种写法出现次数最多

"琬":宛的字不多

关键词:汉字里面有宛字旁,左右结构,只要字,不要任何说明,表格形式呈现

宛字的九叠篆写法都一样:保留一个"婉"

同样方法测试:"炎,宣、斤、页"

如果发现找不到字,就重新新建一个对话框,再搜索

这个斤是左右结构,但是每个字有大小的

都是一样的"页",也是有"宽"有"窄"

由此,可以通过查找相关的汉字,获取,获取特殊汉字的边旁部首,进行组合

琬:珍和婉

琰:珍和淡

因为暄只有一个写法,只能三个王字里面选:但是三个王都比日宽,所以

所以恐怕要把宣字左右缩小了、

颀=顷+斯

保存后的效果图

接下来就是UIBOT写代码,读取文字,重新组合位置,制作右向左的四个字,生成图片(等30秒),另存为"学号+名字.png"

因为UIBOT程序一直在下载其他图片,

所以我还是用Python写了一个代码,Python识别屏幕坐标比较烦,不像UIBOT可以识别屏幕。它只能一次次测试,获取坐标数字

python 复制代码
'''
查找坐标位置的代码
阿夏
20250130
'''

import time
import pyautogui
import pyperclip


time.sleep(2)

# 获取当前鼠标的位置
x, y = pyautogui.position()

print("Current mouse position:", x, y)

全部代码

python 复制代码
'''
根据名字,下载九叠篆姓名印章(四字) 英文拼音输入法状态,先打开一个百度界面
星火讯飞、阿夏
20250130
'''

import pandas as pd

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250130篆章九叠篆'

# 读取 Excel 文件
df = pd.read_excel(path + r'\姓名.xlsx', usecols=[0, 1])

#  打印第一列和第二列组合的文字(图片名称) 创建图片名称列表
image_names = []

# 打印第一列和第二列组合的文字(图片名称)并添加到列表中
for index, row in df.iterrows():
    image_name = f"{row[0]:02} {row[1]}"
    # print(image_name)
    image_names.append(image_name)
print(image_names)

# 定义一个函数来根据字数添加后缀
def add_suffix(cell):
    if len(str(cell)) == 2:
        return str(cell) + '印章'
    elif len(str(cell)) == 3:
        return str(cell) + '印'
    else:
        return cell

# 需要做图章的四个文字
# df[df.columns[1]] = df[df.columns[1]].apply(add_suffix)# [1,'余三', 
df = df[df.columns[1]].apply(add_suffix)# ['余三', 

# 将修改后的 DataFrame 转换为列表
modified_list = df.values.tolist()
print(modified_list)

for i in range(len(image_names[19:])):
    # 进入自动点击屏幕设置(打开九叠篆网站)
    import pyautogui
    import pyperclip
    import time

    # 移动鼠标到指定的坐标位置
    # 新建页面
    pyautogui.moveTo(287,22)
    # 执行鼠标左键点击操作
    pyautogui.click()
    # 打开网站
    pyautogui.moveTo(259, 64)
    # 执行鼠标左键点击操作
    pyautogui.click()
    # 等待一小段时间以确保点击生效
    time.sleep(1)

    # 输入网址
    url = 'http://jiudiezhuan.com/createseal.asp'    
    pyautogui.typewrite(url)
    time.sleep(3)
    # 按下回车键以访问网址
    pyautogui.press('enter')

    # 弹框
    pyautogui.moveTo(1130,179)
    # 执行鼠标左键点击操作
    pyautogui.click()
     

    # 输入框
    # 将中文文字复制到剪贴板
    pyautogui.moveTo(794, 377)
    pyautogui.click()

    text = modified_list[19:][i]
    pyperclip.copy(text)
    # 模拟按下Ctrl+V粘贴文本
    pyautogui.hotkey('ctrl', 'v')
    # 再按回车键
    pyautogui.press('enter')
    time.sleep(5)

    # 生成图片
    pyautogui.moveTo(1741,617)
    pyautogui.click()
    time.sleep(20)

    # 右击另存你好,世界!

    # x, y = 1000, 2000
    pyautogui.moveTo(876, 452)
    # 执行鼠标右击操作
    pyautogui.rightClick()
    time.sleep(2)
    pyautogui.moveTo(917,504)
    # 执行鼠标右击操作
    pyautogui.rightClick()

    time.sleep(5)


    # # 文件名输入
    # pyautogui.moveTo(175,802)
    # # 执行鼠标右击操作
    # pyautogui.rightClick()
    # # 文件名
    text = image_names[19:][i]
    pyperclip.copy(text)
    # 模拟按下Ctrl+V粘贴文本
    pyautogui.hotkey('ctrl', 'v')
    # 再按回车键
    pyautogui.press('enter')
    time.sleep(3)

    # 关闭页面
    pyautogui.moveTo(497,18)
    # 执行鼠标左键点击操作
    pyautogui.click()

画了半个小时,才把30+4个名字图片生成好

这是最基础的左向右、上到下的布局。如果我想变成上到下,右到左又要这么来一次,不仅费时,几个拼图字还要合成两次。

所以我发现完全可以把30个名字,每个字单独拆开来,去掉重复字(我们班"王、一"比较多)",然后依次生成单个字,用Python遍历读取方式,提取需要的四个字,用活字印刷的方式布局,那么想怎么布局就能怎么布局,还可以更改印章、之印、专章等字)

python 用代码读取每个汉字,去掉重复。

python 复制代码
'''
根据名字,下载九叠篆姓名印章(单字)活字印刷拼合 英文拼音输入法状态,先打开一个百度界面
星火讯飞、阿夏
20250130
'''
import pandas as pd

start=22
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250130篆章九叠篆'

# 读取 Excel 文件

df = pd.read_excel(path + r'\姓名.xlsx', usecols=[0, 1])

# 创建图片名称集合
image_names_set = set()

# 打印第一列和第二列组合的文字(图片名称)并添加到集合中,把每个名字变成单个的字
for index, row in df.iterrows():
    # 假设单元格内容是用逗号分隔的
    cell_content = str(row[1])
    elements = cell_content.split(',')
    for element in elements:
        element = element.strip()
        # 将元素中的每个字符拆分成单独的元素
        for char in element:
            image_names_set.add(char)

# 将集合转换为列表
image_names = (list(image_names_set))
# 排序,否则文字下载的时候每次的顺序都不同,如果断了,不知道从那个字开始
image_names.sort()

print(image_names)
print(len(image_names))
# 77

把终端显示的所有单个汉字,复制(77字)

黏贴到"九叠篆-搜索字形"的文字框里(100字以内)

所有字体都显示出来

4个汉字没有

python 复制代码
'''
根据名字,下载九叠篆姓名印章(单字)活字印刷拼合 英文拼音输入法状态,先打开一个百度界面
星火讯飞、阿夏
20250130
'''
import pandas as pd

import time
import pyautogui
import pyperclip

start=54
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250130篆章九叠篆'

# 读取 Excel 文件

df = pd.read_excel(path + r'\姓名.xlsx', usecols=[0, 1])

# 创建图片名称集合
image_names_set = set()

# 打印第一列和第二列组合的文字(图片名称)并添加到集合中,把每个名字变成单个的字
for index, row in df.iterrows():
    # 假设单元格内容是用逗号分隔的
    cell_content = str(row[1])
    elements = cell_content.split(',')
    for element in elements:
        element = element.strip()
        # 将元素中的每个字符拆分成单独的元素
        for char in element:
            image_names_set.add(char)

# 将集合转换为列表
image_names = (list(image_names_set))
# 排序,否则文字下载的时候每次的顺序都不同,如果断了,不知道从那个字开始
image_names.sort()

print(image_names)
print(len(image_names))
# 77

# 打开网址(只有1次)
pyautogui.moveTo(287,22)
# 执行鼠标左键点击操作
pyautogui.click()

time.sleep(1)

# 输入网址
url = 'http://jiudiezhuan.com/findlist.asp'    
pyautogui.typewrite(url)


# 按下回车键以访问网址
pyautogui.press('enter')
time.sleep(1)

#   弹框
pyautogui.moveTo(1130,179)
# 执行鼠标左键点击操作
pyautogui.click()
time.sleep(2)


for i in range(len(image_names[start:])):
    # 进入自动点击屏幕设置(打开九叠篆网站)

    # 输入框
    # 将中文文字复制到剪贴板
    pyautogui.moveTo(697,293)
    pyautogui.click()
    # pyautogui.moveTo(1527,778)
    # pyautogui.click()
    # # 双击
    pyautogui.doubleClick()

    text = image_names[start:][i]
    pyperclip.copy(text)
    # 模拟按下Ctrl+V粘贴文本
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(2)
    # 再按回车键
    pyautogui.moveTo(1109,320)
    pyautogui.click()

    time.sleep(2)

    # 下载按钮
    pyautogui.moveTo(142,590)
    pyautogui.click()
    # 下载png高清图
    pyautogui.moveTo(249,605)
    pyautogui.click()
    time.sleep(3)

    # 保存
    pyautogui.press('enter')
    time.sleep(3)

一次只下载一个字,这一次用了17分钟就下载了73个字,速度快多了。

PPTX,把两张图片叠放在一起,重新组合

左右部首都缩窄一点

用两种颜色区分

组合图片效果

放到单字字库里

制作图片组合

python 复制代码
'''
活字拼合:根据名字,提取对应九叠篆文字的图片,组合成2*2印章形状
星火讯飞、阿夏
20250130
'''

import pandas as pd
from PIL import Image
import os

from PIL import Image, ImageDraw

# 画布大小(正方形)
pic=500
# 边距线框粗细
bj=10

start = 30
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250130篆章九叠篆'

# 读取 Excel 文件
df = pd.read_excel(path + r'\姓名.xlsx', usecols=[0, 1])

# 打印第一列和第二列组合的文字(图片名称) 创建图片名称列表
image_names = []
for index, row in df.iterrows():
    image_name = f"{int(row[0]):02} {row[1]}"
    image_names.append(image_name)
print(image_names)

# 定义一个函数来根据字数添加后缀
def add_suffix(cell):
    if len(str(cell)) == 2:
        return str(cell) + '印章'
    elif len(str(cell)) == 3:
        return str(cell) + '印'
    else:
        return cell

# 需要做图章的四个文字
df[df.columns[1]] = df[df.columns[1]].apply(add_suffix)

# 将修改后的 DataFrame 转换为列表
modified_list = df[df.columns[1]].values.tolist()
print(modified_list)

# 只要前面30个人
modified_list = modified_list[:start]

# 使用列表推导式将每个名字拆分成单个字符
split_chars = [char for name in modified_list for char in name]
print(split_chars)
print(len(split_chars))

# 定义文件夹路径和目标文件名列表
folder_path = path + r'\01 单字下载'

# 获取文件夹中的所有文件
all_files = os.listdir(folder_path)

# 按照姓名出现的顺序依次读取字的图片(活字)
matched_files = []
for char in split_chars:
    matched_files.extend([os.path.join(folder_path, file) for file in all_files if char in file])

print(matched_files)

# 将字符列表按每4个一组进行嵌套(四个字一组)
nested_chars = [matched_files[i:i+4] for i in range(0, len(matched_files), 4)]
print(nested_chars)
print(len(nested_chars))


# 遍历每个位置并插入对应的图片
output_folder = os.path.join(path, '02 图片组合')
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 遍历每个位置并插入对应的图片
for i, group in enumerate(nested_chars):
    # 创建一个500x500的透明背景图
    background = Image.new('RGBA', (pic, pic), (255, 255, 255, 0))
    # 定义插入图片的位置(左上,左下 ,右上,右下)
    # 坐标两款
    z1=bj
    z2=int(pic/2)
    # 图片大小
    z3=z2-bj
    positions = [(z1, z1), (z1, z2), (z2, z1), (z2,z2)]
    for pos, image_path in zip(positions, group):
        try:
            img = Image.open(image_path).convert("RGBA")
            img = img.resize((z3,z3))  # 调整图片大小为250x250
            background.paste(img, pos, img)  # 使用alpha通道粘贴图片
        except Exception as e:
            print(f"Error processing {image_path}: {e}")
    
    # 在500x500背景上添加红色边框5磅
    draw = ImageDraw.Draw(background)
    border_color = (255, 0, 0)  # 红色
    border_width = bj  # 5磅
    for j in range(border_width):
        draw.rectangle([j, j, 499-j, 499-j], outline=border_color)
    
    output_path = os.path.join(output_folder, f"{image_names[i]}.png")
    background.save(output_path)
    print(f"Saved combined image to {output_path}")

图片效果(透明背景)

按学号排序(用了学号和姓名做文件名)

4个坐标位置(10,10)(10,250)(250,10)(250,250)

把坐标更换一下

我喜欢的上到下,右向左,

黑色框都是"印"

这个代码可以自动调整红色边框线。

如果我想加粗红色边框,缩小汉字

太神奇了。

后续还有3个思路要继续制作:

1、图片水平翻转(制作打孔的线条印章,真的能印)

2、线条变成黑色(非透明部分转黑色)

3、九叠篆字体"笔底龙蛇""笔画蜿蜒",艺术性强,但基本无法辨认姓名,需要再做一个隶书版本(包含学号)。便于老师和幼儿确认物权。

相关推荐
Icomi_6 分钟前
【PyTorch】6.张量运算函数:一键开启!PyTorch 张量函数的宝藏工厂
c语言·c++·人工智能·pytorch·python·深度学习·机器学习
纠结哥_Shrek10 分钟前
pytorch实现主成分分析 (PCA):用于数据降维和特征提取
人工智能·pytorch·python
lljss202021 分钟前
python实现http文件服务器访问下载
服务器·python·http
martian66535 分钟前
第27篇:Python开发进阶:python多线程与多进程编程
服务器·python
不做超级小白1 小时前
小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)
javascript·python
李智 - 重庆1 小时前
Python 函数魔法书:基础、范例、避坑、测验与项目实战
经验分享·python·编程技巧·编程实战·水平考试
mofei121381 小时前
Python设计模式 - 组合模式
python·设计模式·组合模式
belldeep2 小时前
python:洛伦兹变换
python·numpy·lorenz
earthzhang20214 小时前
《深入浅出HTTPS》读书笔记(31):HTTPS和TLS/SSL
开发语言·网络·python·https·1024程序员节