[英]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.