
背景需求:
基于1.0版手表表盘制作中的问题——幼儿一只手不能自行佩戴、幼儿佩戴时抽拉表带容易撕裂表带或卡扣。
由此产生三个手表调整思路
1、把圆环位置放到表带底部


2、雌雄扣位置不变(内1,点3)因为调整改过,所以参数变化,显示是正圆形


3、表带顶部配上一个表盘,也就是表带和表盘在一张纸上,不用黏贴,同时表盘上有数字。

4、不要设计环扣(不容易对称剪,同时纸片容易拉断)
5、希望手表上的表盘圆形和雌雄扣的三个圆点保持正圆形,不是原来的拉长后变形的椭圆形。
手动调试,把原图720*1280的1280长度扩大,反复测试,发现高度达到1510时,复制3倍长度正好凑满单元格的长度



由此代码设计思路流程是

1、读取原图的720*1280,重新设置高度为1.18倍等于720*1510、放到“变长”文件夹
,
2、把拉长的图片复制3份,去掉左右0.5CM的白色部分,做表带,然后在上面画表盘和三个点



生成的图片放在“02手表环”,每张尺寸720*4530

代码展示
# 3.89*2*5条
'''
表带3.12CM9条
星火讯飞、阿夏
2024年12月09日
'''
import os,math,time
from PIL import Image, ImageDraw
from PIL import Image
import shutil
from docx import Document
from docx.shared import Cm
from PIL import Image
from PyPDF2 import PdfFileMerger, PdfFileReader
from PIL import Image, ImageDraw, ImageFont
import os,random
print('----1、房屋切割成左右对称两片------------')
path=r'D:\20241204手表表皮表盘'
folder_path2=path+r'\01表带\01原图'
t=9
import os
from PIL import Image
folder_path=path +r'\01表带\01变长'
os.makedirs(folder_path,exist_ok=True)
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path2):
# 检查文件是否为图片
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
# 拼接完整的文件路径
file_path = os.path.join(folder_path2, filename)
# 打开图片
with Image.open(file_path) as img:
# 获取图片的宽度和高度
width, height = img.size
print(f"{filename}:宽 = {width}, 长 = {height}")
# 计算新的高度(原高度的一半)
n_height = int(height*1.18)
print(f"{filename}:宽 = {width}, 长 = {n_height}")
# 003.png:宽 = 720, 长 = 1280
# 调整图片大小
resized_img = img.resize((width, n_height))
# 保存调整后的图片
new_file_path = os.path.join(folder_path, f"{filename}")
resized_img.save(new_file_path)
print(f"已保存调整后的图片: {new_file_path}")
# 720, 1280
# 003.png:宽 = 720, 长 = 1510
# # 设置文件夹路径
output_folder = path+r'\01表带\02手表环'
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
# 检查文件是否为图片
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
# 拼接完整的文件路径
file_path = os.path.join(folder_path, filename)
# 打开图片
with Image.open(file_path) as img:
# 获取图片的宽度和高度
original_width, original_height = img.size
# 创建一个新的空白图片,宽度不变,高度为原图的两倍
new_width = original_width
new_height = original_height * 3
new_img = Image.new('RGB', (new_width, new_height), color='white')
# 在0,0和0,高度的一半位置插入两次原图
top_position = (0, 0)
middle_position = (0, original_height)
three_position = (0, original_height*2)
new_img.paste(img, top_position)
new_img.paste(img, middle_position)
new_img.paste(img, three_position)
# 创建一个绘图对象
draw = ImageDraw.Draw(new_img)
# 画线
# 设置虚线样式,每段2磅黑线和2磅空白交替出现
# dash_length = 40
# space_length = 30
# # 获取top和bottom的值
# tt=[]
# tt.append(top)
# tt.append(bottom)
# # 定义起始点和结束点
# for hh in tt:
# start_point = (original_width/6,top)
# end_point = (original_width/6*5,top)
# start_point = (original_width/6,hh)
# end_point = (original_width/6*5,hh)
# # 计算总长度
# total_length = end_point[0] - start_point[0]
#

最低0.47元/天 解锁文章
1135

被折叠的 条评论
为什么被折叠?



