如何在Windows上PNGCrush整个PNG目录树?

Lou*_*ley 3 php java recursion pngcrush

问题几乎就是标题中提到的内容.

我有很多MapTiler创建的PNG文件.确切地说是24083个文件.它们位于许多文件夹中,在许多文件夹中,即文件夹树,duh.事实上,手动PNGCrush所有这些是最浪费的时间.

有人有算法分享给我吗?一个可以递归粉碎所有这些PNG的人?

我有一个Windows PC,很想拥有它,而在Java或PHP比另一种语言(因为我已经对它很熟悉),但其他别的东西可能会被罚款.

谢谢!

Ger*_*ies 11

您不需要任何特殊功能,只需使用FORWindows命令提示符中的命令即可.

使用此行:

FOR /R "yourdir" %f IN (*.png) DO pngcrush "%f" "%f.crushed.png"
Run Code Online (Sandbox Code Playgroud)

"yourdir"是存储输入文件的根目录.

两人%f在最后:

  • 第一个是输入文件名
  • 第二个是输出文件名

-ow在1.7.22中添加了选项以使操作就地:

FOR /R "yourdir" %f IN (*.png) DO pngcrush -ow "%f"
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此页面FOR.

  • 上面的命令抛出错误,它无法覆盖现有文件.我已经修改了一下并且现在正在工作......................................... .................................................. ................................................../R"E:\ workspace\pngs"%f IN(*.png)DO(E:\ workspace\pngcrush\pngcrush.exe -brute"%f""%f-crushed.png"&& move/Y"% f-crushed.png""%f") (9认同)