python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】

这篇具有很好参考价值的文章主要介绍了python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.背景

在当今数字化时代,照片处理和文档编辑是许多领域中不可或缺的任务。从个人创作到企业文档,人们经常需要快速而有效地处理大量照片,并将它们整合到文档中。Python作为一种强大而灵活的编程语言,为自动化这一过程提供了理想的平台。

这篇文章将探讨如何使用Python自动化操作,通过批量处理照片尺寸并将它们输出到Word文档中,实现高效而简便的工作流程。我们将使用PIL库(Python Imaging Library)来处理图像,并结合python-docx库创建和编辑Word文档。

背景中的任务涉及从一个指定文件夹中获取照片,将它们调整到预定的尺寸,并将结果整合到一个规范的Word文档中。这种自动化方法不仅提高了工作效率,还确保了一致性和标准化的输出。

通过掌握这些技能,读者将能够轻松适应各种场景,从个人博客到企业报告,都能够灵活地处理和呈现图像。这种自动化方法不仅适用于专业开发者,也为对Python和图像处理感兴趣的初学者提供了一个学习和实践的良好起点。

二.需求

当今社交媒体、博客和企业报告等领域中,图像在信息传递和内容呈现中扮演着至关重要的角色。随着图像数量的不断增加,人们需要一种快速而有效的方式来处理和整合这些图像,以便更好地展示信息。

本项目的背景是在处理大量照片并将其嵌入到文档中时,遇到了手动操作的不便和效率问题。手动调整每张照片的尺寸并逐一插入到文档中不仅费时且容易出错,特别是在需要频繁更新文档内容时。为了解决这个问题,我们决定创建一个自动化脚本,能够批量处理照片并将它们按照预定的尺寸嵌入到Word文档中。

该脚本的设计目标是提高处理效率,确保输出的文档具有一致的格式和布局,以满足不同场景下对图像处理和文档编辑的需求。通过采用Python编程语言和相关库,我们可以轻松实现这一目标,并且使得这一过程对于非专业用户也更加友好。

这个自动化脚本旨在为那些需要在文档中快速整合照片的用户提供便利。通过简化照片处理流程,用户可以专注于内容创作而不必过多关注繁琐的图像处理步骤。

三.实现源码

3.1 项目结构

python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】,Python领域开发技术应用技术,python,自动化,word,处理照片,处理文档

3.2 源码

import os
from docx import Document
from docx.shared import Inches
from PIL import Image



# 调整照片大小的函数
def resize_image(image_path, target_width):
    img = Image.open(image_path)
    width_percent = (target_width / float(img.size[0]))
    height_size = int((float(img.size[1]) * float(width_percent)))
    resized_img = img.resize((target_width, height_size), Image.LANCZOS)
    return resized_img


# 存储照片的文件夹路径
photos_folder = "image"  # 将 "path_to_photos_folder" 替换为你存储照片的文件夹路径

# 创建一个新的Word文档
doc = Document()

# 依次处理照片
photo_count = 0
photos_per_page = 3
page_width = 6.5  # Word页面宽度,单位为Inches

for root, _, files in os.walk(photos_folder):
    for filename in files:
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            photo_count += 1
            photo_path = os.path.join(root, filename)

            # 调整照片大小
            target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸对应的像素数
            resized_img = resize_image(photo_path, target_width)

            # 将照片添加到Word文档中
            if photo_count % photos_per_page == 1:
                # 添加新页面
                doc.add_page_break()

            # 添加照片到当前页面
            doc.add_picture(photo_path, width=Inches(page_width / photos_per_page))

            # 保存调整大小后的照片
            resized_photo_path = os.path.splitext(photo_path)[0] + "_resized.jpg"
            resized_img.save(resized_photo_path)

# 保存Word文档
doc.save("output.docx")

3.3 核心调节照片大小

调整照片大小的核心逻辑在resize_image函数中。以下是该函数的代码:

# 调整照片大小的函数
def resize_image(image_path, target_width):
    img = Image.open(image_path)
    width_percent = (target_width / float(img.size[0]))
    height_size = int((float(img.size[1]) * float(width_percent)))
    resized_img = img.resize((target_width, height_size), Image.LANCZOS)
    return resized_img

这个函数接受两个参数:image_path表示图像文件的路径,target_width表示目标宽度。在函数内部,它使用PIL库的Image.open打开图像,然后计算调整后的高度,最后使用img.resize进行调整,返回调整后的图像对象resized_img

在主循环中,通过调用resize_image函数将每张照片调整为指定的宽度:

# 调整照片大小
target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸对应的像素数
resized_img = resize_image(photo_path, target_width)

这里,target_width被计算为使得每页显示的照片宽度满足指定的Word页面宽度。然后,调用resize_image(photo_path, target_width)将当前照片调整为目标宽度。

这个调整大小的过程确保了每张照片都符合指定的宽度,以适应Word文档的布局。

四.代码解释

你提供的代码主要用于批量处理照片,调整它们的大小,并将它们插入到一个Word文档中。下面是对代码的解释:

import os
from docx import Document
from docx.shared import Inches
from PIL import Image

# 调整照片大小的函数
def resize_image(image_path, target_width):
    img = Image.open(image_path)
    width_percent = (target_width / float(img.size[0]))
    height_size = int((float(img.size[1]) * float(width_percent)))
    resized_img = img.resize((target_width, height_size), Image.LANCZOS)
    return resized_img

# 存储照片的文件夹路径
photos_folder = "image"  # 将 "path_to_photos_folder" 替换为你存储照片的文件夹路径

# 创建一个新的Word文档
doc = Document()

# 依次处理照片
photo_count = 0
photos_per_page = 3
page_width = 6.5  # Word页面宽度,单位为Inches

for root, _, files in os.walk(photos_folder):
    for filename in files:
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            photo_count += 1
            photo_path = os.path.join(root, filename)

            # 调整照片大小
            target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸对应的像素数
            resized_img = resize_image(photo_path, target_width)

            # 将照片添加到Word文档中
            if photo_count % photos_per_page == 1:
                # 添加新页面
                doc.add_page_break()

            # 添加照片到当前页面
            doc.add_picture(photo_path, width=Inches(page_width / photos_per_page))

            # 保存调整大小后的照片
            resized_photo_path = os.path.splitext(photo_path)[0] + "_resized.jpg"
            resized_img.save(resized_photo_path)

# 保存Word文档
doc.save("output.docx")

解释:

  1. resize_image函数:这个函数使用PIL库打开图像,然后按照给定的目标宽度调整图像的大小。它返回调整大小后的图像对象。

  2. 存储照片的文件夹路径:photos_folder变量包含了存储照片的文件夹路径,你需要将其替换为实际存储照片的文件夹路径。

  3. 创建一个新的Word文档:doc = Document()创建了一个空白的Word文档对象。

  4. 处理照片:通过遍历指定文件夹中的照片文件,对每张照片进行处理。

  5. resize_image函数用于调整照片大小,然后将照片插入到Word文档中。每插入photos_per_page张照片后,添加一个新页面。

  6. 调整大小后的照片保存在与原始照片相同的路径下,文件名以"_resized"结尾。

  7. 最终,Word文档保存为"output.docx"。

五.实现效果

image文件夹初始照片:
python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】,Python领域开发技术应用技术,python,自动化,word,处理照片,处理文档
运行py文件:
python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】,Python领域开发技术应用技术,python,自动化,word,处理照片,处理文档
image文件夹处理后照片:
python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】,Python领域开发技术应用技术,python,自动化,word,处理照片,处理文档
word文档输出:
python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】,Python领域开发技术应用技术,python,自动化,word,处理照片,处理文档

六.心得总结

这篇文章介绍了如何利用Python在数字化时代处理照片和文档编辑的需求中实现自动化操作。通过使用Python编程语言以及PIL库和python-docx库,作者设计了一个自动化脚本,能够批量处理照片并将它们按照预定的尺寸嵌入到Word文档中,提高了工作效率。

文章从项目的背景和需求出发,详细解释了为什么需要这样的自动化脚本以及它的应用场景。通过提供实现源码,读者可以了解到整个项目的结构和核心实现,包括调整照片大小的函数和主要的代码逻辑。

在实现源码的部分,文章通过解释核心调节照片大小的函数,展示了如何使用PIL库调整每张照片的大小,以适应Word文档的布局。此外,文章还对代码进行了解释,详细说明了每个部分的作用和实现细节。

最后,文章展示了代码的实际效果,通过图片展示了处理前后的照片对比和生成的Word文档。这样的实际效果展示使读者能够更直观地理解脚本的运行结果。

总的来说,这篇文章清晰地介绍了整个自动化项目的设计思路、实现细节和实际效果,为读者提供了一个学习和实践图像处理和文档编辑的良好起点。文章来源地址https://www.toymoban.com/news/detail-754794.html

到了这里,关于python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 自动化办公:一键批量生成 PPT

    Stata and Python 数据分析 一、导读 在实际工作中,经常需要批量处理Office文件,比如需要制作一个几十页的PPT进行产品介绍时,一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢?Python提供的pptx 包就可以用来自动化处理ppt。 pytho****n-pptx 是一个

    2024年01月17日
    浏览(76)
  • 树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写SD Card (三)

    如 《树莓派镜像安装 + 设置 + 镜像批量化操作 - USB boot (二)》中所写, 可以使用树莓派USB挂载方式, 编写自动化脚本, 当有对应的设备出现的时候,格式化 + 烧写镜像; windows上监控读卡器设备 遍历系统设备, 选择读卡器设备, 并定时获取设备信息; 当设备有了大小之后, 开始

    2024年02月14日
    浏览(43)
  • “Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

    案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? 注意:有些命令的交互操作提示是不算在标准输出和错误输出中的,此时该方法不适用 注意:命令的交互操作提示是不算终端窗口的,此时该方法不适用 一. expect 简介 expect 工具是一个根据脚本与其他交互

    2024年02月08日
    浏览(59)
  • 【办公自动化】使用Python批量生成PPT版荣誉证书

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、Python处理PPT 二、批量生成PPT版荣誉证书  三、往期推荐           使用Python处

    2024年02月12日
    浏览(45)
  • python接口自动化(二十六)--批量执行用例 discover(详解)

    我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了。加载用例后,用 unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚 本的用例。那么前边介绍那么多都是半道开始,

    2024年02月13日
    浏览(82)
  • python-自动化篇-办公-批量新建文件夹并保存日志信息

    因为业务需要,每天都需要按当天的日期创建很多新文件夹。把这种重复又繁重的操作交给Python来做,一直是我的目标。先说下要求: 默认在桌面新建文件夹。 文件夹命名方式,“月.日-1”,比如7.8-1,7.8-2。7是代表当天的月份,不能显示07。8是代表当天的日期,不能显示

    2024年02月20日
    浏览(50)
  • 9个python自动化脚本,PPT批量生成缩略图、添加图片、重命名

    最近一番在整理资料,之前买的PPT资源很大很多,但归类并不好,于是一番准备把这些PPT资源重新整理一下。统计了下,这些PPT资源大概有2000多个,一共30多G,一个一个手动整理这个投入产出比也太低了。 作为程序员,当然要重复的工作程序化,让机器自动执行。于是一番

    2024年02月11日
    浏览(67)
  • python自动化办公——定制化将电子签名批量签写到PDF文件

    首先需要下载所需要的库 此外还需要下载poppler,这里使用的是poppler-0.67.0 这是一个处理PDF文件的工具包,里面包含了非常多的功能供我们使用。 下载地址:https://blog.alivate.com.au/poppler-windows/ 下载完压缩包之后,将压缩包解压到本地的某个地方,并记好路径。 现需要将类似这

    2024年02月09日
    浏览(62)
  • Python文件自动化处理

    Python标准库 和操作系统有关的操作 创建、移动、复制文件和文件夹 文件路径和名称处理 路径的操作 获取当前Python程序运行路径 不同操作系统之间路径的表示方式  windows中采用反斜杠()作为文件夹之间的分隔符  Mac和Linux中采用斜杠(/)作为文件夹之间的分隔符 把文件夹里面

    2024年01月17日
    浏览(62)
  • Python操作自动化

    迷途小书童 读完需要 3 分钟 速读仅需 1 分钟 当我们需要自动化进行一些重复性的任务时,Python 中的 pyautogui 库就可以派上用场了,这个库可以模拟鼠标和键盘的操作,让我们的程序可以像人一样与计算机进行交互。 首先,我们需要安装 pyautogui 库。在命令行中输入以下命令

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包