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

Python Matplotlib 中绘制指定像素大小的图像

Python Matplotlib 中绘制指定像素大小的图像

flyfish

像素尺寸 = 英寸尺寸 × dpi

Matplotlib 的figsize参数以英寸为单位,dpi(dots per inch)表示每英寸的像素数。

目标像素宽度 = 英寸宽度 × dpi
目标像素高度 = 英寸高度 × dpi

反过来,若要指定像素尺寸(如 800×600),需先计算对应的英寸尺寸:
英寸宽度 = 目标像素宽度 / dpi
英寸高度 = 目标像素高度 / dpi

示例

展示如何创建并保存800×600 像素的图像

importmatplotlib.pyplotaspltfromPILimportImage# 用于验证保存的图像像素尺寸# --------------------------# 1. 定义目标像素尺寸和dpi# --------------------------target_width_px=800# 目标宽度(像素)target_height_px=600# 目标高度(像素)dpi=100# 每英寸像素数(可调整,如72/96/150/300)# --------------------------# 2. 计算figsize(英寸)# --------------------------figsize=(target_width_px/dpi,# 英寸宽度target_height_px/dpi# 英寸高度)# --------------------------# 3. 创建画布并绘制内容# --------------------------# 创建figure,指定尺寸和dpi(关键!)fig,ax=plt.subplots(figsize=figsize,dpi=dpi)# 绘制示例内容(折线图)ax.plot([1,2,3,4],[1,4,2,3],linewidth=2)ax.set_title('800×600',fontsize=12)ax.set_xlabel('X轴',fontsize=10)ax.set_ylabel('Y轴',fontsize=10)# 可选:调整子图间距(避免空白裁剪影响像素精度)plt.subplots_adjust(left=0.1,right=0.9,top=0.9,bottom=0.1)# --------------------------# 4. 保存图像(确保像素准确)# --------------------------# 保存时指定相同的dpi,避免缩放;bbox_inches='tight'会裁剪空白,如需严格像素请去掉plt.savefig('output_800x600.png',dpi=dpi,# 与画布dpi一致bbox_inches=None# 不裁剪空白(保证像素精确))# 显示图像(窗口大小受系统影响,但保存的像素是准确的)plt.show()# --------------------------# 5. 验证保存的图像像素尺寸# --------------------------img=Image.open('output_800x600.png')actual_width,actual_height=img.sizeprint(f"实际保存的像素尺寸:{actual_width}×{actual_height}")# 输出:800×600

dpi的常见取值
屏幕显示:72/96/100 dpi
打印/高清:150/300 dpi

http://www.cnnetsun.cn/news/4476.html

相关文章:

  • 如何快速获取嵌入式Linux教程第二版:完整的PDF下载与使用指南
  • 程序开发中如何避免触发文件安全警告
  • 如何减少托管堆内存碎片
  • 财税工具的 “温柔效率”:北京兰亭妙微眼中的 Taxr 界面设计革新
  • LDPC码检验矩阵重构 论文复现 LDPC码开集识别 可定制LDPC码编译码及其识别
  • Wan2.2-T2V-A14B:140亿参数如何重塑高保真视频生成新标准?
  • 智能照明控制系统:不止于 “亮”,更是未来生活与行业的新趋势
  • Wan2.2-T2V-A14B在疫苗接种科普视频中的儿童友好型表达
  • 敏捷QA需要编写测试用例吗?
  • 集成测试怎么做?
  • Wan2.2-T2V-A14B在科幻题材创作中的想象力边界拓展
  • 千万不能错过的实验室改造秘籍,实力强到炸锅!
  • 千万注意!选择实验室装修,这3点不能忽视!
  • 科技助力大豆高产:水肥一体化让种植效率翻倍!
  • 通过docker-compose.yml文件一次性安装mysql、minio、redis服务
  • Wan2.2-T2V-A14B生成视频帧率可达多少?动态表现实测
  • IT人力外包和项目外包:90%企业搞混的关键区别
  • 【收藏】AI智能体不再神秘:用Python和LLM循环构建你的第一个智能体
  • 不得了!国家级陶瓷工业设计中心,究竟藏着啥惊艳秘密?
  • C3-OWD:一种用于开放世界检测的课程跨模态对比学习框架
  • 探索面向不利条件语义分割的天气感知聚合与适应方法
  • 收藏必备!2025年CTF零基础入门指南:从小白到高手的系统学习路径
  • Wan2.2-T2V-A14B在毕业典礼纪念视频中的虚拟校友聚合
  • 企业级一款BS美食网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 基于SpringBoot+Vue的医院病历管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 解码ERNIE-4.5-21B:210亿参数混合专家架构的技术演进与产业变革
  • ElastAlert 三环境配置实战:从零构建企业级告警体系
  • LCS4110R 32位加密芯片
  • ExcelProperty注解:企业级数据映射的架构智慧
  • 测试开发面试高频“灵魂八问”深度解析与应答策略