簡體   English   中英

將文件夾中的所有png轉換為dds

[英]convert all png in a folder to dds

有誰知道如何保存與 python 中的輸入文件同名的 output 文件? 如果我硬編碼,那么 output 文件作為 abc.dds 它可以工作。 當我嘗試使用 *.dds 它不起作用..

原因是因為我需要通過當前文件夾將 go 的代碼保存為同名但擴展名為 .dds 的 png 文件...

任何想法? 謝謝!

下面的代碼:

from wand.image import Image
from glob import glob

 #Get list of all images filenames to include
image_names = glob('*.png')

 #Create new Image, and extend sequence
with Image() as img:
    img.sequence.extend( [ Image(filename=f) for f in image_names ] )

    img.save(filename='abc.dds')

任何想法? 謝謝。

您原始邏輯的順序有點偏離。 根據您在評論中所說的內容,您只想遍歷某個目錄中的所有 PNG 文件,然后將它們轉換為具有相同文件名的 DDS 文件。

在您的原始文件中,您正在創建一個圖像序列,該序列更多地用於 GIF 等動畫。 相反,您要做的是遍歷目錄中的所有 PNG,將它們加載為Image對象,然后使用dxt5壓縮(即 DDS 文件類型壓縮)將它們重新保存為dds文件。

在下面的代碼中,我使用pathlib.Path.glob ,它的工作方式與glob.glob幾乎相同,然后我只在各個 glob 文件上使用.stem來獲取文件的名稱,不帶擴展名,然后重用它們來制作.dds文件名。

from pathlib import Path

from wand.image import Image

if __name__ == "__main__":
    png_files = Path(".").glob("*.png")

    for png_file in png_files:
        with Image(filename=png_file) as img:
            img.compression = "dxt5"
            base_file = png_file.stem
            dds_file = f"{base_file}.dds"
            img.save(filename=dds_file)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM