【问题标题】:How to PNGCrush a whole directory tree of PNGs on Windows?如何在Windows上PNGCrush整个PNG目录树?
【发布时间】:2011-09-24 22:37:21
【问题描述】:

这个问题几乎就是标题中提出的问题。

我有很多由 MapTiler 创建的 PNG 文件。确切地说是24083个文件。它们位于许多文件夹中,即文件夹树中的许多文件夹中,duh。问题是,手动 PNGCrush 所有这些都是最大的浪费时间。

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

我有一台 Windows PC,我希望它宁愿用 Java 或 PHP 编写,而不是其他语言(因为我已经很熟悉它了)但是其他的东西可能没问题。

谢谢!

【问题讨论】:

  • 手动 PNGCrush 并非不可能。这将需要很长时间,但这与实际上是不可能的不同。

标签: java php recursion pngcrush


【解决方案1】:

您不需要任何特别的东西,只需在 Windows 命令提示符中使用 FOR 命令即可。

使用这一行:

FOR /R "yourdir" %f IN (*.png) DO pngcrush "%f" "%f.crushed.png"

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

最后的两个%f

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

-ow option added in 1.7.22 进行就地操作:

FOR /R "yourdir" %f IN (*.png) DO pngcrush -ow "%f"

有关FOR的更多信息,请参阅this page

【讨论】:

  • @Gerco,这会覆盖主文件夹内多个文件夹中的所有 png 文件吗? (递归)
  • @Nideo:是的,它是递归的,会处理该目录下的所有 png 文件。
  • 甜,现在就试试。谢谢
  • @Gerco,您能帮我设置 pngcrush 以供 CMD 使用吗?它告诉我“pngcrush”无法识别...我必须将什么文件复制到哪个文件夹中才能使该命令存在? (我没有CMD经验,只用'cd')
  • 上述命令抛出错误,无法覆盖现有文件。我已经对其进行了一些修改,现在可以使用...................................................... ..................................................... ................................................. 为了/R "E:\workspace\pngs" %f IN (*.png) DO ( E:\workspace\pngcrush\pngcrush.exe -brute "%f" "%f-crushed.png" && 移动 /Y "% f-crushed.png" "%f" )
【解决方案2】:

程序 'sweep' http://users.csc.calpoly.edu/~bfriesen/software/files/sweep32.zip 允许您递归地对目录中的所有文件运行相同的命令。

【讨论】:

  • 扫描是如何工作的?我无法双击它(它只是再次关闭),如果我将主文件夹拖入/覆盖它,它就不起作用。
  • 这是一个命令行程序,所以你需要打开 cmd 并输入你的东西。PNGCrush 也可以在命令行中工作,所以你应该没问题。
  • 刚刚检查过,它可能每个目录只运行一次,因此您可能需要使用FOR将它与其他答案结合起来@
【解决方案3】:

请参阅:RecursiveIteratorIteratorRecursiveDirectoryIterator exec(或类似名称)

你可以使用:

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('%your-top-directory%'));
foreach ($it as $entry) {
  if (strtolower($entry->getExtension()) == 'png') {
     // execute command here
  }
}

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 2013-12-27
    • 2013-08-16
    • 2013-07-08
    • 2023-02-13
    • 2012-04-15
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多