Jump to content

Batch Converter PNG to DDS


Dwbryel

Recommended Posts

Bom.
Estava fazendo um pack de icones para um amigo, aconteceu que esse pack deu mais de 200 icones em PNG. eu logo falei PQP.
Com nosso amigo GePeTo, saiu esse script em bat. 
Em que converte o PNG para DDS.

Baixe o NVDIA Tools https://developer.nvidia.com/downloads/texture-tools-standalone-app

Se voce alterar a instalação parão do NVIDIA. altere no bat o 
C:\Program Files\NVIDIA Corporation\NVIDIA Texture Tools\nvcompress.exe

 

Essa opção parece ser boa para icones apenas.

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

REM Solicita ao usuário para informar a pasta contendo os arquivos PNG
set /p "input_dir=Digite o caminho da pasta que contém os arquivos PNG: "

REM Verifica se a pasta existe
if not exist "%input_dir%" (
    echo Erro: A pasta especificada não existe.
    pause
    exit /b
)

REM Caminho completo para o nvcompress.exe
set "nvcompress_path=C:\Program Files\NVIDIA Corporation\NVIDIA Texture Tools\nvcompress.exe"

REM Define a pasta de saída
set "output_dir=%input_dir%_converted"

REM Cria a pasta de saída, se não existir
if not exist "!output_dir!" (
    mkdir "!output_dir!"
)

REM Loop através de todos os arquivos PNG na pasta de entrada
for %%f in ("%input_dir%\*.png") do (
    REM Define o nome do arquivo de saída
    set "output_file=!output_dir!\%%~nf.dds"

    REM Converte o arquivo PNG para DDS usando nvcompress
    echo Convertendo: "%%f" para "!output_file!"
    "!nvcompress_path!" -bc1 "%%f" "!output_file!"

    REM Verifica se o arquivo foi criado com sucesso
    if exist "!output_file!" (
        echo Sucesso: %%f convertido para !output_file!
    ) else (
        echo Erro: Falha ao converter "%%f"
    )
)

echo Conversão completa!
pause
exit /b

 

Quem puder testar, fiz essa novo, com opções para escolher DXT1, 3, 5.

 

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

REM Solicita ao usuário para informar a pasta contendo os arquivos PNG
set /p "input_dir=Digite o caminho da pasta que contém os arquivos PNG: "

REM Verifica se a pasta existe
if not exist "%input_dir%" (
    echo Erro: A pasta especificada não existe.
    pause
    exit /b
)

REM Solicita ao usuário escolher o formato de compressão: DXT1, DXT3, DXT5
echo Escolha o formato de compressão: 
echo 1 = DXT1 (Sem alfa)
echo 2 = DXT3 (Alfa explícito)
echo 3 = DXT5 (Interpolação alfa)
set /p "compression=Escolha uma opção (1-3): "

REM Define o parâmetro de compressão com base na escolha do usuário
if "%compression%"=="1" (
    set "compression_param=-bc1"
) else if "%compression%"=="2" (
    set "compression_param=-bc2"
) else if "%compression%"=="3" (
    set "compression_param=-bc3"
) else (
    echo Erro: Opção inválida. Usando DXT1 como padrão.
    set "compression_param=-bc1"
)

REM Solicita ao usuário se deseja gerar mipmaps
set /p "mipmap=Gerar mipmaps? (S/N): "

REM Define o parâmetro de mipmaps se o usuário escolher gerá-los
if /i "%mipmap%"=="S" (
    set "mipmap_param=-m"
) else (
    set "mipmap_param="
)

REM Caminho completo para o nvcompress.exe
set "nvcompress_path=C:\Program Files\NVIDIA Corporation\NVIDIA Texture Tools\nvcompress.exe"

REM Define a pasta de saída
set "output_dir=%input_dir%_converted"

REM Cria a pasta de saída, se não existir
if not exist "!output_dir!" (
    mkdir "!output_dir!"
)

REM Loop através de todos os arquivos PNG na pasta de entrada
for %%f in ("%input_dir%\*.png") do (
    REM Define o nome do arquivo de saída
    set "output_file=!output_dir!\%%~nf.dds"

    REM Converte o arquivo PNG para DDS usando nvcompress com as opções escolhidas
    echo Convertendo: "%%f" para "!output_file!" usando !compression_param! !mipmap_param!
    "!nvcompress_path!" !compression_param! !mipmap_param! "%%f" "!output_file!"

    REM Verifica se o arquivo foi criado com sucesso
    if exist "!output_file!" (
        echo Sucesso: %%f convertido para !output_file!
    ) else (
        echo Erro: Falha ao converter "%%f"
    )
)

echo Conversão completa!
pause
exit /b

 

 

Bom uso a todos 😃

 

Edited by Dwbryel
ajuste
  • Like 4

XD

Link to comment
Share on other sites





×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.