我一直在尝试创建一个使用 pngquantum 处理一堆 PNG 文件的自定义 Ant 任务,但没有成功。
以下是我到目前为止一直在尝试的内容(我一直将其作为HTML5样板构建脚本的一部分运行,因此这就是动态值的来源):
<apply executable="${basedir}/${dir.build.tools}/pngquant" dest="./${dir.publish}/${dir.images}/" osfamily="unix">
<fileset dir="./${dir.source}/${dir.images}/" includes="**/*.png" excludes="${images.bypass}, ${images.default.bypass}"/>
<arg value="-force 256"/>
<targetfile/>
<srcfile/>
<mapper type="identity"/>
</apply>
目前,每个图像都出现"无法打开读取"的错误。
我知道这可能不是很有帮助,但我真的不知道从这里开始。任何帮助将不胜感激。
我不知道问题是什么,但我认为您的 Ant XML 本身有问题。
首先,您的excludes
在逗号后有一个额外的空格。
排除:必须排除的文件模式的逗号或空格分隔列表。
也就是说,您应该使用逗号或空格,而不是一起使用。所以应该是${images.bypass},${images.default.bypass}
.---- 我发现这是不对的。它使用 StringTokenizer(String sInput, String sDelimiter, boolean bReturnTokens)
并将 false 传递给第三个参数,以便您可以一起使用,
。
另外,我建议您使用嵌套<include>
和<exclude>
元素以使其更清晰。
其次,如果您不需要使用它们,则无需将<targetfile/>
和<srcfile/>
放入<apply>
。
第三,<arg value="-force 256" />
要<arg value="-force"/>
<arg value="256"/>
。