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

批量改图片DPI的Python脚本

批量改图片DPI的Python脚本

批量改图片DPI的Python脚本 | 写论文终于不用一张张改了

做学术论文、投期刊的朋友应该都懂,图片DPI这玩意儿平时不起眼,投稿的时候真能急死人。大部分期刊都要求300dpi以上,有的甚至要600dpi。但平时ArcGIS出图、截图啥的,默认都是72或者96dpi,每次投稿前都得一张张改,烦得要死。

之前用PS批量处理也麻烦,还容易卡。索性自己写了个Python脚本,把整个文件夹的图片全丢进去,一键搞定。亲测好用,分享给大家。


先说下DPI这事儿

很多人搞不清,其实改DPI不改变图片本身的像素,就是改个"打印清晰度标识"。简单说:

  • 72/96dpi:屏幕看看还行,打印就糊
  • 300dpi:普通印刷够用
  • 600dpi:学术论文、学位论文基本都要这个标准

所以改DPI不是把小图放大,只是告诉打印机"这图按高清来印"。


脚本怎么写的

直接上代码,我把注释都写清楚了,小白也能用。

核心部分其实就几行

最关键的就是Pillow这个库的save方法,给它传dpi参数就行:

from PIL import Image# 打开图片
with Image.open("你的图片.jpg") as img:# 保存的时候设置DPIimg.save("输出.jpg", dpi=(600, 600), quality=95)

就这么简单。JPG的话加个quality=95,画质损失很小。PNG是无损的,直接设dpi就行。

完整的批量处理版本

我加了遍历文件夹、格式过滤、异常处理这些,直接用就行:

from PIL import Image
import os# ========== 这里改路径就行 ==========
INPUT_FOLDER = r".\input"      # 把要处理的图放这个文件夹
OUTPUT_FOLDER = r".\output"    # 处理完自动存在这里
TARGET_DPI = (600, 600)        # 论文就用600,不用改
# ==================================# 自动创建输出文件夹
os.makedirs(OUTPUT_FOLDER, exist_ok=True)count_ok = 0
count_skip = 0print("开始处理...\n")for filename in os.listdir(INPUT_FOLDER):filepath = os.path.join(INPUT_FOLDER, filename)# 跳过文件夹if not os.path.isfile(filepath):continue# 只处理图片ext = os.path.splitext(filename)[1].lower()if ext not in ('.png', '.jpg', '.jpeg'):count_skip += 1print(f"跳过: {filename}")continuetry:with Image.open(filepath) as img:params = {'dpi': TARGET_DPI}# JPG额外加画质参数if ext in ('.jpg', '.jpeg'):params['quality'] = 95params['subsampling'] = 0# 保存img.save(os.path.join(OUTPUT_FOLDER, filename), **params)count_ok += 1print(f"完成: {filename}")except Exception as e:count_skip += 1print(f"失败: {filename} | {str(e)}")# 最后统计
print("\n" + "-"*40)
print(f"处理完了!成功: {count_ok} 张,跳过: {count_skip} 个")
print(f"文件存在这里: {os.path.abspath(OUTPUT_FOLDER)}")
print("-"*40)

怎么用

  1. 先装依赖:
pip install Pillow
  1. 脚本旁边新建个叫input的文件夹,把所有要改的图都扔进去

  2. 运行脚本,完事去output文件夹拿就行

  3. 验证的话,Windows右键图片→属性→详细信息里就能看到DPI变了


踩过的坑

  1. JPG要设quality=95:默认的保存质量太低,图会糊。设95几乎看不出区别,文件也不会太大

  2. 大小写问题:有的图片是.JPG大写,判断后缀的时候记得转小写

  3. 图片被占用:如果图片在PS或者其他软件里开着,会保存失败,关了就行

  4. TIFF格式:如果要处理tif,在格式判断里加上就行


亲测处理几百张图也就几秒钟,比PS动作快多了。做GIS、遥感的同学,出的那些专题图、示意图,用这个批量处理完直接就能插论文里。

http://www.rkmt.cn/news/1499677.html

相关文章:

  • 3个核心场景:从零开始配置yuzu Switch模拟器,让电脑流畅运行任天堂游戏
  • 2026年6月最新版大同第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 3步掌握LLPlayer:从零开始的语言学习终极指南
  • cann/asc-devkit SinCosCompute性能调优样例
  • 人生第一双高跟鞋品牌排行:轻奢舒适兼具纪念意义 - 起跑123
  • 青岛海边小区漏水频发?盐雾气候对防水层的致命影响 - 青岛防水品牌推荐
  • StateSmith开发指南:从源码解析到贡献代码,成为开源项目参与者
  • GraphQL-Go-Tools完全指南:构建高性能GraphQL API网关的终极解决方案
  • GoFish性能优化终极指南:10个加速软件包下载与安装的实用技巧
  • 戴森球计划蓝图库:3000+工厂设计让你的星际帝国建设效率翻倍
  • 探索scodec核心组件:BitVector与Codec trait深度剖析 [特殊字符]
  • 人生第一双高跟鞋品牌排行:舒适与纪念价值双维度对比 - 起跑123
  • 洛雪音乐音源完全攻略:打破平台壁垒,一键解锁全网高品质音乐
  • 如何快速获取网易云音乐和QQ音乐歌词:免费歌词下载工具完整指南
  • 澳洲本地留学移民机构排行:成功率维度实测对比 - 互联网科技品牌测评
  • Python 爬虫项目 动态渲染页面爬取实战(Playwright 深度应用)
  • Rusty V8完整指南:5步掌握在Rust中运行JavaScript
  • 人生第一双高跟鞋排行:5个轻奢品牌适配性实测对比 - 起跑123
  • graphql-go-tools与其他GraphQL网关性能对比:谁才是真正的性能王者?
  • 如何轻松永久保存微信聊天记录:留痕工具完整指南
  • RVC WebUI 5个高级配置技巧:深度优化语音转换性能与音质
  • 2026年常州茶礼盒定制推荐榜:企业商务送礼、高端伴手茶礼与节日限定礼盒深度解析 - 品牌发掘
  • 终极歌词获取指南:如何快速下载网易云和QQ音乐LRC歌词
  • Plotly.NET.ImageExport教程:轻松实现图表静态图片导出
  • 3个痛点+4步方案:用OpenAI Whisper-base.en彻底解决你的语音识别难题
  • PaddleNLP Zero Padding优化指南:如何减少40%无效计算提升大模型训练效率
  • 2026年国内十大竹蜻蜓厂家解析(优势规模案例品质) - 企师傅推荐官
  • Embla Carousel架构深度解析:构建高性能轮播组件的设计哲学
  • 2026年6月最新版常德第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • Medicat Installer:终极USB工具箱安装指南,一站式解决系统维护难题