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

使用Python實現(xiàn)產品圖片自動化處理

這篇具有很好參考價值的文章主要介紹了使用Python實現(xiàn)產品圖片自動化處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大家好,在當今的數(shù)字化時代,產品圖片在電子商務和市場營銷中發(fā)揮著至關重要的作用。然而,為在線平臺準備產品圖片可能是一項耗時的任務,本文將分享一個Python腳本,用于自動化產品圖片的圖像處理工作流程。通過使用Python Imaging Library(PIL)rembg庫,可以實現(xiàn)刪除圖片背景,裁剪圖片以適應產品尺寸,調整圖片大小,并創(chuàng)建具有特定大小和顏色的新畫布。

腳本概述

今天本文要討論的腳本遵循以下步驟:

  1. 使用rembg庫刪除圖片背景。

  2. 裁剪圖片,僅包含產品尺寸。

  3. 調整裁剪后的圖片到指定的大小,同時保持寬高比。

  4. 創(chuàng)建具有指定大小和顏色的新畫布。

  5. 將調整大小后的產品圖片粘貼到新畫布上。

安裝和使用

要運行腳本,需要安裝PIL(Pillow)庫和rembg庫。你可以使用pip安裝它們:

pip install pillow rembg

要使用該腳本,請按照以下步驟操作:

  1. 將你的產品圖片放置在指定的文件夾和子文件夾中。

  2. 在腳本中更新folder_dir變量,以使其指向包含你的產品圖片的文件夾。

  3. 使用Python解釋器運行腳本。

腳本將處理文件夾及其子文件夾中的所有產品圖片,應用前面提到的圖像處理步驟。處理后的圖像將進行保存,并在原始文件名后附加“_Processed”后綴。

函數(shù)解釋

append_id(filename)

def append_id(filename):
    p = Path(filename)
    return "{0}_{2}{1}".format(Path.joinpath(p.parent, p.stem), ".png", "Processed")

此函數(shù)會在輸出圖像文件名附加一個ID。它以原始文件名作為輸入,并返回附加了“_Processed”后綴的修改后的文件名。這有助于區(qū)分處理后的圖像和原始圖像。

autocrop_image(img, border=0)

def autocrop_image(img, border=0):
    bbox = img.getbbox()
    img = img.crop(bbox)
    (scale, height) = img.size
    scale += border * 2
    height += border * 2
    cropped_image = Image.new("RGBA", (scale, height), (0, 0, 0, 0))
    cropped_image.paste(img, (border, border))
    return cropped_image

此函數(shù)通過刪除任何不必要的空白或背景來自動裁剪圖像,它接受一個輸入圖像img和一個可選border參數(shù)(默認為0),該參數(shù)用于在裁剪后的圖像周圍添加額外的填充。其使用img.getbbox()計算圖像的邊界框,將圖像裁剪為邊界框的內容,然后創(chuàng)建一個適當大小的新圖像以容納裁剪后的圖像和邊框,最后將裁剪后的圖像粘貼到新圖像上,并返回裁剪后的圖像結果。

resize_image(img, myScale)

def resize_image(img, myScale):
    img_width, img_height = img.size

    if img_height > img_width:
        hpercent = (myScale/float(img_height))
        wsize = int((float(img_width)*float(hpercent)))
        resized_img = img.resize((wsize, myScale), Image.Resampling.LANCZOS)

    if img_width > img_height:
        wpercent = (myScale/float(img_width))
        hsize = int((float(img_height)*float(wpercent)))
        resized_img = img.resize((myScale, hsize), Image.Resampling.LANCZOS)

    return resized_img

此函數(shù)可在保持寬高比的同時縮放圖像,接受輸入圖像img和所需縮放比例myScale。首先函數(shù)根據(jù)比較圖像的高度和寬度來確定圖像是縱向還是橫向,然后使用所需的比例計算出相應的調整大小的尺寸,最后使用img.resize()根據(jù)計算出的尺寸調整圖像大小,并返回調整大小后的圖像。

resize_canvas(img, canvas_width, canvas_height)

def resize_canvas(img, canvas_width, canvas_height):
    old_width, old_height = img.size
    x1 = int(math.floor((canvas_width - old_width) / 2))
    y1 = int(math.floor((canvas_height - old_height) / 2))
    mode = img.mode
    if len(mode) == 1:
        new_background = (255)
    if len(mode) == 3:
        new_background = (255, 255, 255)
    if len(mode) == 4:
        new_background = (255, 255, 255, 255)
    newImage = Image.new(mode, (canvas_width, canvas_height), new_background)
    newImage.alpha_composite(
        img, ((canvas_width - old_width) // 2, (canvas_height - old_height) // 2))
    return newImage

此函數(shù)可調整畫布大小并將圖像放置于其中,它接受輸入圖像img、畫布寬度canvas_width和畫布高度canvas_height。該函數(shù)根據(jù)畫布尺寸與圖像尺寸之間的差異,計算出將圖像居中放置于畫布上所需的位置,然后創(chuàng)建一個具有指定畫布尺寸和根據(jù)圖像模式確定的適當背景色的新圖像。最后在計算出的位置將輸入圖像粘貼到新圖像上,并返回調整畫布尺寸后的圖像。

process_files(folder_dir)

def process_files(folder_dir):
    for entry in os.scandir(folder_dir):
        if entry.is_file() and entry.name.lower().endswith(image_extensions):
            image_path = entry.path
            img = Image.open(image_path)
            output_path = append_id(image_path)
            removedBGimage = remove(img, True)
            croppedImage = autocrop_image(removedBGimage, 0)
            resizedImage = resize_image(croppedImage, 700)
            combinedImage = resize_canvas(resizedImage, 1000, 1000)
            combinedImage.save(output_path)
        elif entry.is_dir():
            process_files(entry.path)

此函數(shù)可處理指定文件夾及其子文件夾中的文件,以folder_dir作為輸入,函數(shù)使用os.scandir()迭代遍歷文件夾中的每個條目。如果條目是一個文件并且具有受支持的圖像擴展名,它使用Image.open()打開該圖像,然后通過調用append_id()函數(shù)生成輸出路徑,使用rembg庫中的remove()函數(shù)刪除圖像背景,自動裁剪圖像,調整圖像大小,創(chuàng)建新畫布,并將處理后的圖像保存到輸出路徑。如果條目是一個目錄,則它遞歸調用process_files()函數(shù)以處理子目錄中的文件。

本文探討了一個Python腳本,用于自動化產品圖片的圖像處理。通過充分利用PILrembg的功能,可以刪除圖像背景、裁剪圖像、調整圖像大小并創(chuàng)建新畫布,以獲得精美和專業(yè)的外觀。通過自動化這一工作流程,可以節(jié)省準備產品圖片用于各種電子商務和市場營銷平臺的時間和精力。文章來源地址http://www.zghlxwxcb.cn/news/detail-603012.html

到了這里,關于使用Python實現(xiàn)產品圖片自動化處理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • 使用【Python+Appium】實現(xiàn)自動化測試

    使用【Python+Appium】實現(xiàn)自動化測試

    一、環(huán)境準備 1.腳本語言:Python3.x ? ?IDE:安裝Pycharm 2.安裝Java JDK 、Android SDK 3.adb環(huán)境,path添加E:SoftwareAndroid_SDKplatform-tools 4.安裝Appium for windows,官網地址 Redirecting ?點擊下載按鈕會到GitHub的下載頁面,選擇對應平臺下載 ??安裝完成后,啟動Appium,host和port默認的即可,然

    2024年02月08日
    瀏覽(19)
  • 如何使用Python實現(xiàn)FPGA編程“自動化”

    之前讀到過一個公眾號文章,寫了關于《使用Python實現(xiàn)Vivado和Modelsim仿真的自動化》,連接https://mp.weixin.qq.com/s/2YR_LjpQNtJr9beqnCz7CA。根據(jù)該文章,基于自己的編程習慣和工作需要,我做了一些修改和便于自己編程的一些python代碼,這里和大家介紹一下。 對于生成的tb文件使用了

    2023年04月14日
    瀏覽(24)
  • Python+Appium實現(xiàn)自動化測試的使用步驟

    這篇文章主要介紹了Python+Appium實現(xiàn)自動化測試的使用步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧 1.腳本語言:Python3.x IDE:安裝Pycharm 2.安裝Java JDK 、Android SDK 3.adb環(huán)境,path添加E:

    2024年02月03日
    瀏覽(26)
  • Python使用HTTP代理實現(xiàn)網絡請求的自動化

    Python使用HTTP代理實現(xiàn)網絡請求的自動化

    隨著網絡技術的發(fā)展,網絡請求成為了許多應用的重要組成部分。然而,手動發(fā)送網絡請求不僅效率低下,而且容易出錯。為了解決這個問題,我們可以使用Python來實現(xiàn)網絡請求的自動化。而HTTP代理可以幫助我們更好地控制和管理這些請求。 在Python中,有許多庫可以用來發(fā)

    2024年01月19日
    瀏覽(25)
  • 使用Python+selenium實現(xiàn)第一個自動化測試腳本

    這篇文章主要介紹了使用Python+selenium實現(xiàn)第一個自動化測試腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧 最近在學web自動化,記錄一下學習過程。 此處我選用python3.6+selenium3.0,均用

    2024年02月03日
    瀏覽(25)
  • Python Selenium實現(xiàn)自動化測試及Chrome驅動使用

    Python Selenium實現(xiàn)自動化測試及Chrome驅動使用

    本文將介紹如何使用 Python ? Selenium 庫實現(xiàn) 自動化測試 ,并詳細 記錄 了Chrome驅動的使用方法。 通過本文的指導,讀者將能夠快速上手使用Python Selenium進行自動化測試。 并了解如何配置和使用Chrome驅動來實現(xiàn)更高效的自動化測試。 一、Python Selenium簡介 Python Selenium是一個用于

    2024年02月03日
    瀏覽(28)
  • Python Selenium實現(xiàn)自動化測試及Chrome驅動使用!

    Python Selenium實現(xiàn)自動化測試及Chrome驅動使用!

    本文將介紹如何使用Python Selenium庫實現(xiàn)自動化測試,并詳細記錄了Chrome驅動的使用方法。 通過本文的指導,讀者將能夠快速上手使用Python Selenium進行自動化測試。 并了解如何配置和使用Chrome驅動來實現(xiàn)更高效的自動化測試。 一、Python Selenium簡介 Python Selenium是一個用于Web應用

    2024年03月10日
    瀏覽(29)
  • Python+TinyPNG熊貓網站自動化的壓縮圖片

    Python+TinyPNG熊貓網站自動化的壓縮圖片

    前言 本篇在講什么 Python+TinyPNG自動化處理圖片 本篇需要什么 對 Python 語法有簡單認知 依賴 Python2.7 環(huán)境 依賴 TinyPNG 工具 本篇的特色 具有全流程的 圖文教學 重實踐,輕理論,快速上手 提供全流程的 源碼 內容 ★提高閱讀體驗★ ?? ? 三級標題 ?? ?? ? 四級標題 ?? Tin

    2024年02月11日
    瀏覽(24)
  • Python+Selenium+Pytest+Allure自動化測試框架實戰(zhàn)實例(示例為我司網盤產品)

    Python+Selenium+Pytest+Allure自動化測試框架實戰(zhàn)實例(示例為我司網盤產品)

    應公司要求,組織員工培訓自動化測試,所以也趁此機會把我所學習的自動化框架整理一下,雖說不是很完美,但也有所收獲。 序號 庫、插件、工具 版本號 1 Python 3.11 2 Pycharm 22.2.3 3 pytest 7.2.0 4 pywin32 305 5 selenium3 4.6.0 6 openpyxl 3.0.10 7 Chromedriver 與當前瀏覽器版本對應即可 8 al

    2023年04月16日
    瀏覽(437)
  • Python文件自動化處理

    Python文件自動化處理

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

    2024年01月17日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包