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

【教学类-76-02】20251007植物角卡通人物抠图(十种尺寸大小)

背景需求

国庆节后班级就要植物角检查了。搭档发了一个照片+卡通动作的植物角标签抠图素材

实验过程

我通义万相做了一下,无法实现效果,

最后还是PS把一页8图单独保存(背景透明)

先用以前做的【教学类-76-01】卡通人物抠图(去头)黏贴孩子大头照(五种尺寸大小)做一套。

https://blog.csdn.net/reasonsummer/article/details/143639399?spm=1011.2415.3001.5331https://blog.csdn.net/reasonsummer/article/details/143639399?spm=1011.2415.3001.5331

尝试用根据图片宽度或者图片高度等比例缩放图片,

结果按照高度图片会很宽

所以我需要图片的高度适配表格的高度,图片的宽度适配表格的宽度。

同时我在之前五个模版基础上,做了十个模版

然后让程序根据每个单元格的高度和宽度,调整图片的长宽,做十种大小图片

''' 植物角人物抠像素材,十种模版 deepseek,阿夏 20251007 ''' import random import math from PIL import Image, ImageDraw, ImageFont import os import time from docx import Document from docx.shared import Cm from docx2pdf import convert from PyPDF2 import PdfMerger import shutil import fitz from PIL import Image # 模板配置 - 根据实际模板布局调整 template_configs = [ { 'name': '01(28.76乘19.76)', 'sl': 1, 'L_horizontal': 1, # 横版列数 'L_vertical': 1, # 竖版列数 'w_vertical': '28.76', 'w_horizontal': '19.3', 'h_vertical': '19.3', 'h_horizontal': '28.24', 'files': { 'horizontal': '01(28.76乘19.76横).docx', 'vertical': '01(28.76乘19.76竖).docx' } }, { 'name': '02(19.5乘14.2)', 'sl': 2, 'L_horizontal': 2, # 横版2列 'L_vertical': 1, # 竖版1列 # 这里的横版和竖版的高宽要交换 'w_vertical': '19.5', 'w_horizontal': '14.1', # 14.2 'h_vertical': '14.1', 'h_horizontal': '19.5', 'files': { 'horizontal': '02(19.5乘14.2横).docx', 'vertical': '02(19.5乘14.2竖).docx' } }, { 'name': '04(14.1乘9.8)', 'sl': 4, 'L_horizontal': 2, # 横版2列 'L_vertical': 2, # 竖版2列 'w_vertical': '9.75', 'w_horizontal': '14.1', # 14.1 'h_vertical': '14.1', 'h_horizontal': '9.75', # '9.88' # '9.88', 'files': { 'horizontal': '04(14.1乘9.8横).docx', 'vertical': '04(14.1乘9.8竖).docx' } }, { 'name': '08(9.75乘7.1)', 'sl': 8, 'L_horizontal': 4, # 横版4列 'L_vertical': 2, # 竖版2列 # 这里的横版和竖版的高宽要交换 'w_vertical': '9.75', # '9.75 'w_horizontal': '7.1', 'h_vertical': '7.03',# '7.05 'h_horizontal': '9.75', 'files': { 'horizontal': '08(9.75乘7.1横).docx', 'vertical': '08(9.75乘7.1竖).docx' } }, { 'name': '09(9.4乘6.5)', 'sl': 9, 'L_horizontal': 3, # 横版3列 'L_vertical': 3, # 竖版3列 'w_vertical': '6.5', 'w_horizontal': '9.4', 'h_vertical': '9.4', 'h_horizontal': '6.5', 'files': { 'horizontal': '09(9.4乘6.5横).docx', 'vertical': '09(9.4乘6.5竖).docx' } } ] path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20251006植物角卡通图像' f = ['01截图'] def get_template_dimensions(template_config, orientation): """根据方向获取模板尺寸""" if orientation == "horizontal": return float(template_config['w_horizontal']), float(template_config['h_horizontal']) else: return float(template_config['w_vertical']), float(template_config['h_vertical']) def get_template_columns(template_config, orientation): """根据方向获取模板列数""" if orientation == "horizontal": return int(template_config['L_horizontal']) else: return int(template_config['L_vertical']) def calculate_image_size(img_width, img_height, template_width_cm, template_height_cm): """ 严格计算图片尺寸,确保完全在表格单元格内 优先保证宽度不超过限制 """ # 计算图片宽高比 aspect_ratio = img_width / img_height print(f" 原始图片: {img_width}x{img_height}, 宽高比: {aspect_ratio:.2f}") print(f" 表格限制: 宽{template_width_cm}cm x 高{template_height_cm}cm") # 方法1:先适配宽度(宽度固定为表格宽度,计算高度) option1_width = template_width_cm option1_height = option1_width / aspect_ratio # 方法2:先适配高度(高度固定为表格高度,计算宽度) option2_height = template_height_cm option2_width = option2_height * aspect_ratio print(f" 方法1-宽度适配: 宽{option1_width:.2f}cm -> 高{option1_height:.2f}cm") print(f" 方法2-高度适配: 高{option2_height:.2f}cm -> 宽{option2_width:.2f}cm") # 优先选择方法1(宽度适配),因为宽度是首要限制 if option1_height <= template_height_cm: # 方法1完全适配 final_width = option1_width final_height = option1_height print(f" ✅ 选择方法1(宽度适配)- 完全在限制内") elif option2_width <= template_width_cm: # 方法2完全适配 final_width = option2_width final_height = option2_height print(f" ✅ 选择方法2(高度适配)- 完全在限制内") else: # 两种方法都无法完全适配,选择方法1(保证宽度不超过) final_width = temp
http://www.jsqmd.com/news/1268234/

相关文章:

  • 武汉科谷技工学校 2026 年宠物医疗与护理专业招生简章 - 湖北找学校
  • 黄石西塞山黄金回收全攻略:本地 30 年老店实测,卖金避坑不亏上千 - 福顺金黄金回收
  • TMS320DM6431串行引导模式详解:I2C、UART、SPI配置与实战指南
  • 从用户到管理员:Coordino权限管理与角色配置详解
  • 从 Loop 工程到 Graph 工程:Agent 真正难的是过程可控
  • # 南山世博特高端系统门窗:以匠心守初心,一扇窗的精工修行 - 涂伟
  • BG3ModManager终极指南:免费强大的博德之门3模组管理神器
  • GetQzonehistory:你的QQ空间数字记忆保险箱
  • 2026 大连 8区黄金回收,推荐易奢福,门店集中各大商圈隐私交易 - 肉松卷
  • 2026 杭州上城周末变现名牌包攻略,线下门店营业时间及预约方式 - 奢侈品回收探店ing
  • OpenTelemetry Collector 高可用架构设计与深度实现解析
  • UE5源码编译与调试实战:从环境配置到深度定制开发
  • 2026 大连百达翡丽二手回收哪里找?易奢福 0 套路诚信回收不玩猫腻 - 肉松卷
  • 技术成长中的行动力:从克服“技术懒惰”到构建高效学习实践系统
  • 20分钟快速上手TI DM36x IP摄像头:从开箱到实时视频流访问
  • (2026最新)通辽防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间厨房阳台房顶外墙漏水检测精准测漏 - 吉林同城获客
  • 学术论文降AI率技巧与工具实操指南
  • 如何3分钟完成华为运动数据迁移:解锁你的健身记录价值
  • Tkinter Helper终极指南:Python GUI开发的拖拽布局解决方案
  • 3分钟掌握百度网盘批量转存:终极免费工具让你的效率提升20倍
  • 航空发动机叶片三维扫描检测技术实践
  • 深度学习中的张量掩码操作:原理与应用
  • 2026最新漯河防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间厨房阳台房顶外墙漏水检测精准测漏 - 吉林同城获客
  • 质量部六西格玛内训一般多长时间 - 众智商学院职业教育
  • Bifrost三星固件下载工具:跨平台免费解决方案完整指南
  • 私人AI助手开发:从架构设计到实战优化
  • 2026 北京朝阳区爱马仕回收怎么样靠谱吗?易奢福每隔 1 公里拥有一家门店 - 奢侈品回收实体店
  • 边缘大模型:AI算力分布式部署与优化实践
  • 南京家电以旧换新一站式服务!急时修家电维修,旧机上门估价拆机清运,新机安装同步办理 - 优企甄选
  • AIOps核心技术解析与金融行业实践