无需 mipmap 将 DDS 文件批量转换为 DDS

Batch convert DDS file to DDS without mipmaps

我有一个名为 1257 AD 的骑马与砍杀:战团 mod。 mod 本身很棒,但必须重新保存所有纹理以从 dds 文件中删除 mipmap,以消除 GNU/Linux 上的故障。当然,我可以手动执行此操作,但这会花费很多时间(超过 2000 个纹理),并且 gimp 是否有任何方法可以打开和保存没有 mipmap 的文件。 另外,上次我想这样做时,我使用了带有 Imagemagicks 转换的循环,但它保留了 mipmap。那么我该如何进行这种转换呢?

如果您不想保留 mipmap,您应该使用 'define' dds:mipmaps。将其设置为零将禁用 mipmaps 的写入。

convert input.dds -define dds:mipmaps=0 output.dds

您可以在此处找到所有 dds 定义的列表:http://www.imagemagick.org/script/formats.php

如果您想就地转换它们,请使用 ImageMagick 的 mogrify,它基本上是 convert 但就地进行转换。

使用 mogrify 有可能不可逆转地损坏您的图像,因此请明智地使用它并避免使用冗长的 convert 之类的命令行(使用简单的命令) .

find . -type f -name "*.DDS" | xargs -L1 -I{} mogrify -define dds:mipmaps=0 "{}"

如果你确定你的路径名中没有空格并且你想要稍微提高速度,那么就这样做

find . -type f -name "*.DDS" | xargs mogrify -define dds:mipmaps=0