国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】

這篇具有很好參考價值的文章主要介紹了python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一.背景

在當(dāng)今數(shù)字化時代,照片處理和文檔編輯是許多領(lǐng)域中不可或缺的任務(wù)。從個人創(chuàng)作到企業(yè)文檔,人們經(jīng)常需要快速而有效地處理大量照片,并將它們整合到文檔中。Python作為一種強(qiáng)大而靈活的編程語言,為自動化這一過程提供了理想的平臺。

這篇文章將探討如何使用Python自動化操作,通過批量處理照片尺寸并將它們輸出到Word文檔中,實現(xiàn)高效而簡便的工作流程。我們將使用PIL庫(Python Imaging Library)來處理圖像,并結(jié)合python-docx庫創(chuàng)建和編輯Word文檔。

背景中的任務(wù)涉及從一個指定文件夾中獲取照片,將它們調(diào)整到預(yù)定的尺寸,并將結(jié)果整合到一個規(guī)范的Word文檔中。這種自動化方法不僅提高了工作效率,還確保了一致性和標(biāo)準(zhǔn)化的輸出。

通過掌握這些技能,讀者將能夠輕松適應(yīng)各種場景,從個人博客到企業(yè)報告,都能夠靈活地處理和呈現(xiàn)圖像。這種自動化方法不僅適用于專業(yè)開發(fā)者,也為對Python和圖像處理感興趣的初學(xué)者提供了一個學(xué)習(xí)和實踐的良好起點。

二.需求

當(dāng)今社交媒體、博客和企業(yè)報告等領(lǐng)域中,圖像在信息傳遞和內(nèi)容呈現(xiàn)中扮演著至關(guān)重要的角色。隨著圖像數(shù)量的不斷增加,人們需要一種快速而有效的方式來處理和整合這些圖像,以便更好地展示信息。

本項目的背景是在處理大量照片并將其嵌入到文檔中時,遇到了手動操作的不便和效率問題。手動調(diào)整每張照片的尺寸并逐一插入到文檔中不僅費時且容易出錯,特別是在需要頻繁更新文檔內(nèi)容時。為了解決這個問題,我們決定創(chuàng)建一個自動化腳本,能夠批量處理照片并將它們按照預(yù)定的尺寸嵌入到Word文檔中。

該腳本的設(shè)計目標(biāo)是提高處理效率,確保輸出的文檔具有一致的格式和布局,以滿足不同場景下對圖像處理和文檔編輯的需求。通過采用Python編程語言和相關(guān)庫,我們可以輕松實現(xiàn)這一目標(biāo),并且使得這一過程對于非專業(yè)用戶也更加友好。

這個自動化腳本旨在為那些需要在文檔中快速整合照片的用戶提供便利。通過簡化照片處理流程,用戶可以專注于內(nèi)容創(chuàng)作而不必過多關(guān)注繁瑣的圖像處理步驟。

三.實現(xiàn)源碼

3.1 項目結(jié)構(gòu)

python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】,Python領(lǐng)域開發(fā)技術(shù)應(yīng)用技術(shù),python,自動化,word,處理照片,處理文檔

3.2 源碼

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



# 調(diào)整照片大小的函數(shù)
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" 替換為你存儲照片的文件夾路徑

# 創(chuàng)建一個新的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)

            # 調(diào)整照片大小
            target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸對應(yīng)的像素數(shù)
            resized_img = resize_image(photo_path, target_width)

            # 將照片添加到Word文檔中
            if photo_count % photos_per_page == 1:
                # 添加新頁面
                doc.add_page_break()

            # 添加照片到當(dāng)前頁面
            doc.add_picture(photo_path, width=Inches(page_width / photos_per_page))

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

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

3.3 核心調(diào)節(jié)照片大小

調(diào)整照片大小的核心邏輯在resize_image函數(shù)中。以下是該函數(shù)的代碼:

# 調(diào)整照片大小的函數(shù)
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

這個函數(shù)接受兩個參數(shù):image_path表示圖像文件的路徑,target_width表示目標(biāo)寬度。在函數(shù)內(nèi)部,它使用PIL庫的Image.open打開圖像,然后計算調(diào)整后的高度,最后使用img.resize進(jìn)行調(diào)整,返回調(diào)整后的圖像對象resized_img。

在主循環(huán)中,通過調(diào)用resize_image函數(shù)將每張照片調(diào)整為指定的寬度:

# 調(diào)整照片大小
target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸對應(yīng)的像素數(shù)
resized_img = resize_image(photo_path, target_width)

這里,target_width被計算為使得每頁顯示的照片寬度滿足指定的Word頁面寬度。然后,調(diào)用resize_image(photo_path, target_width)將當(dāng)前照片調(diào)整為目標(biāo)寬度。

這個調(diào)整大小的過程確保了每張照片都符合指定的寬度,以適應(yīng)Word文檔的布局。

四.代碼解釋

你提供的代碼主要用于批量處理照片,調(diào)整它們的大小,并將它們插入到一個Word文檔中。下面是對代碼的解釋:

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

# 調(diào)整照片大小的函數(shù)
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" 替換為你存儲照片的文件夾路徑

# 創(chuàng)建一個新的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)

            # 調(diào)整照片大小
            target_width = int(page_width / photos_per_page * 1440)  # 1440是Word中1英寸對應(yīng)的像素數(shù)
            resized_img = resize_image(photo_path, target_width)

            # 將照片添加到Word文檔中
            if photo_count % photos_per_page == 1:
                # 添加新頁面
                doc.add_page_break()

            # 添加照片到當(dāng)前頁面
            doc.add_picture(photo_path, width=Inches(page_width / photos_per_page))

            # 保存調(diào)整大小后的照片
            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函數(shù):這個函數(shù)使用PIL庫打開圖像,然后按照給定的目標(biāo)寬度調(diào)整圖像的大小。它返回調(diào)整大小后的圖像對象。

  2. 存儲照片的文件夾路徑:photos_folder變量包含了存儲照片的文件夾路徑,你需要將其替換為實際存儲照片的文件夾路徑。

  3. 創(chuàng)建一個新的Word文檔:doc = Document()創(chuàng)建了一個空白的Word文檔對象。

  4. 處理照片:通過遍歷指定文件夾中的照片文件,對每張照片進(jìn)行處理。

  5. resize_image函數(shù)用于調(diào)整照片大小,然后將照片插入到Word文檔中。每插入photos_per_page張照片后,添加一個新頁面。

  6. 調(diào)整大小后的照片保存在與原始照片相同的路徑下,文件名以"_resized"結(jié)尾。

  7. 最終,Word文檔保存為"output.docx"。

五.實現(xiàn)效果

image文件夾初始照片:
python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】,Python領(lǐng)域開發(fā)技術(shù)應(yīng)用技術(shù),python,自動化,word,處理照片,處理文檔
運行py文件:
python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】,Python領(lǐng)域開發(fā)技術(shù)應(yīng)用技術(shù),python,自動化,word,處理照片,處理文檔
image文件夾處理后照片:
python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】,Python領(lǐng)域開發(fā)技術(shù)應(yīng)用技術(shù),python,自動化,word,處理照片,處理文檔
word文檔輸出:
python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】,Python領(lǐng)域開發(fā)技術(shù)應(yīng)用技術(shù),python,自動化,word,處理照片,處理文檔

六.心得總結(jié)

這篇文章介紹了如何利用Python在數(shù)字化時代處理照片和文檔編輯的需求中實現(xiàn)自動化操作。通過使用Python編程語言以及PIL庫和python-docx庫,作者設(shè)計了一個自動化腳本,能夠批量處理照片并將它們按照預(yù)定的尺寸嵌入到Word文檔中,提高了工作效率。

文章從項目的背景和需求出發(fā),詳細(xì)解釋了為什么需要這樣的自動化腳本以及它的應(yīng)用場景。通過提供實現(xiàn)源碼,讀者可以了解到整個項目的結(jié)構(gòu)和核心實現(xiàn),包括調(diào)整照片大小的函數(shù)和主要的代碼邏輯。

在實現(xiàn)源碼的部分,文章通過解釋核心調(diào)節(jié)照片大小的函數(shù),展示了如何使用PIL庫調(diào)整每張照片的大小,以適應(yīng)Word文檔的布局。此外,文章還對代碼進(jìn)行了解釋,詳細(xì)說明了每個部分的作用和實現(xiàn)細(xì)節(jié)。

最后,文章展示了代碼的實際效果,通過圖片展示了處理前后的照片對比和生成的Word文檔。這樣的實際效果展示使讀者能夠更直觀地理解腳本的運行結(jié)果。

總的來說,這篇文章清晰地介紹了整個自動化項目的設(shè)計思路、實現(xiàn)細(xì)節(jié)和實際效果,為讀者提供了一個學(xué)習(xí)和實踐圖像處理和文檔編輯的良好起點。文章來源地址http://www.zghlxwxcb.cn/news/detail-754794.html

到了這里,關(guān)于python自動化操作:批量處理照片尺寸并輸出到word文檔中【第14篇—python-照片尺寸批量處理輸出】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python 自動化辦公:一鍵批量生成 PPT

    Python 自動化辦公:一鍵批量生成 PPT

    Stata and Python 數(shù)據(jù)分析 一、導(dǎo)讀 在實際工作中,經(jīng)常需要批量處理Office文件,比如需要制作一個幾十頁的PPT進(jìn)行產(chǎn)品介紹時,一頁一頁地制作不僅麻煩而且格式可能不統(tǒng)一。那么有什么辦法可以一鍵生成PPT呢?Python提供的pptx 包就可以用來自動化處理ppt。 pytho****n-pptx 是一個

    2024年01月17日
    瀏覽(24)
  • 樹莓派鏡像安裝 + 設(shè)置 + 鏡像批量化操作 - 自動化燒寫SD Card (三)

    如 《樹莓派鏡像安裝 + 設(shè)置 + 鏡像批量化操作 - USB boot (二)》中所寫, 可以使用樹莓派USB掛載方式, 編寫自動化腳本, 當(dāng)有對應(yīng)的設(shè)備出現(xiàn)的時候,格式化 + 燒寫鏡像; windows上監(jiān)控讀卡器設(shè)備 遍歷系統(tǒng)設(shè)備, 選擇讀卡器設(shè)備, 并定時獲取設(shè)備信息; 當(dāng)設(shè)備有了大小之后, 開始

    2024年02月14日
    瀏覽(21)
  • “Linux免除系統(tǒng)交互操作方法、expect自動化交互工具” 及 “SSH批量修改主機(jī)密碼腳本”

    案例:為機(jī)器磁盤進(jìn)行分區(qū)并實現(xiàn)掛載,免交互式操作,如何實現(xiàn)? 注意:有些命令的交互操作提示是不算在標(biāo)準(zhǔn)輸出和錯誤輸出中的,此時該方法不適用 注意:命令的交互操作提示是不算終端窗口的,此時該方法不適用 一. expect 簡介 expect 工具是一個根據(jù)腳本與其他交互

    2024年02月08日
    瀏覽(51)
  • 【辦公自動化】使用Python批量生成PPT版榮譽(yù)證書

    【辦公自動化】使用Python批量生成PPT版榮譽(yù)證書

    ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點贊???? 收藏 ??加關(guān)注+ 目錄 一、Python處理PPT 二、批量生成PPT版榮譽(yù)證書 ?三、往期推薦 ? ????????使用Python處

    2024年02月12日
    瀏覽(23)
  • python接口自動化(二十六)--批量執(zhí)行用例 discover(詳解)

    python接口自動化(二十六)--批量執(zhí)行用例 discover(詳解)

    我們在寫用例的時候,單個腳本的用例好執(zhí)行,那么多個腳本的時候,如何批量執(zhí)行呢?這時候就需要用到 unittest 里面的 discover 方法來加載用例了。加載用例后,用 unittest 里面的 TextTestRunner 這里類的 run 方法去一次執(zhí)行多個腳 本的用例。那么前邊介紹那么多都是半道開始,

    2024年02月13日
    瀏覽(31)
  • python-自動化篇-辦公-批量新建文件夾并保存日志信息

    python-自動化篇-辦公-批量新建文件夾并保存日志信息

    因為業(yè)務(wù)需要,每天都需要按當(dāng)天的日期創(chuàng)建很多新文件夾。把這種重復(fù)又繁重的操作交給Python來做,一直是我的目標(biāo)。先說下要求: 默認(rèn)在桌面新建文件夾。 文件夾命名方式,“月.日-1”,比如7.8-1,7.8-2。7是代表當(dāng)天的月份,不能顯示07。8是代表當(dāng)天的日期,不能顯示

    2024年02月20日
    瀏覽(25)
  • 9個python自動化腳本,PPT批量生成縮略圖、添加圖片、重命名

    9個python自動化腳本,PPT批量生成縮略圖、添加圖片、重命名

    最近一番在整理資料,之前買的PPT資源很大很多,但歸類并不好,于是一番準(zhǔn)備把這些PPT資源重新整理一下。統(tǒng)計了下,這些PPT資源大概有2000多個,一共30多G,一個一個手動整理這個投入產(chǎn)出比也太低了。 作為程序員,當(dāng)然要重復(fù)的工作程序化,讓機(jī)器自動執(zhí)行。于是一番

    2024年02月11日
    瀏覽(92)
  • python自動化辦公——定制化將電子簽名批量簽寫到PDF文件

    python自動化辦公——定制化將電子簽名批量簽寫到PDF文件

    首先需要下載所需要的庫 此外還需要下載poppler,這里使用的是poppler-0.67.0 這是一個處理PDF文件的工具包,里面包含了非常多的功能供我們使用。 下載地址:https://blog.alivate.com.au/poppler-windows/ 下載完壓縮包之后,將壓縮包解壓到本地的某個地方,并記好路徑。 現(xiàn)需要將類似這

    2024年02月09日
    瀏覽(19)
  • Python文件自動化處理

    Python文件自動化處理

    Python標(biāo)準(zhǔn)庫 和操作系統(tǒng)有關(guān)的操作 創(chuàng)建、移動、復(fù)制文件和文件夾 文件路徑和名稱處理 路徑的操作 獲取當(dāng)前Python程序運行路徑 不同操作系統(tǒng)之間路徑的表示方式? windows中采用反斜杠()作為文件夾之間的分隔符? Mac和Linux中采用斜杠(/)作為文件夾之間的分隔符 把文件夾里面

    2024年01月17日
    瀏覽(19)
  • Python操作自動化

    Python操作自動化

    迷途小書童 讀完需要 3 分鐘 速讀僅需 1 分鐘 當(dāng)我們需要自動化進(jìn)行一些重復(fù)性的任務(wù)時,Python 中的 pyautogui 庫就可以派上用場了,這個庫可以模擬鼠標(biāo)和鍵盤的操作,讓我們的程序可以像人一樣與計算機(jī)進(jìn)行交互。 首先,我們需要安裝 pyautogui 庫。在命令行中輸入以下命令

    2024年02月07日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包