【问题标题】:Disable image writing support in libPNG在 libPNG 中禁用图像写入支持
【发布时间】:2016-04-06 12:40:33
【问题描述】:

我正在尝试通过禁用图像写入支持来减小 libPNG 的大小,因为我正在编写的软件不需要它。我认为在 scripts/pnglibconf.dfa 中注释掉“option WRITE”可以实现这一点,但它仍然在 pngwrite.c 中构建,并且生成的库文件的大小与未注释“option WRITE”时的大小相同。为了禁用 libPNG 中的图像写入支持,我还需要做些什么吗?提前致谢!

【问题讨论】:

  • 嗯,在 pnglibconf.dfa 中似乎有两个“选项 WRITE”,您必须将它们都注释掉才能禁用写入支持。但是,我现在在依赖树中缺少很多选项,因此它不会构建。我尝试浏览并注释掉所有依赖于写支持的东西,但其中一些没有被列为选项,所以没有什么可评论的。例如,“option pHYs”依赖于“WRITE_pHYs”,但“option pHYs”并未在 pnglibconf.dfa 中的任何地方定义。
  • 删除“chunk pHYs”以禁用 pHYs 块支持。正如在 scripts/options.awk 中的 cmets 中所解释的,“chunk”是一个扩展为适当的“option”设置的宏。
  • 我已经从 SourceForge 和 Github/glennrp/libpng 的 libpng GIT 存储库中删除了令人困惑的冗余“选项 WRITE”。这种变化最终会出现在 libng-1.6.21 中。

标签: png libpng


【解决方案1】:

libpng 发行版中的 contrib/pngminim/decoder 目录包含一个示例 pngusr.dfa 以执行您想要的操作。它会关闭所有选项,然后仅打开顺序读取所需的选项。

【讨论】:

  • 谢谢格伦!昨晚我确实尝试了 pngminim/decoder 配置,但我是通过将此目录中包含的文件复制到 libpng 源包的根目录中来实现的。我今天通过进入这个目录并从那里进行构建,成功地构建了它,它产生了一个不错的小型(61448 字节)Linux 二进制文件。我实际上需要交叉编译,因为 ARM 静态库被构建到 Nintendo 3DS 二进制文件中。你知道我是否可以修改 pngminim 解码器中的 makefile 来实现这一点?提前致谢!
  • 这有点跑题了,还有比这个小文本框更适合的内容,但是您可以在 FIrefox Nightly 中查看它是如何完成的,以获取有关如何继续的提示。
  • 谢谢格伦。我会调查的。我已经接受这是正确的答案,因为它显然有效,我只需要弄清楚如何交叉编译它。再次感谢!
猜你喜欢
  • 2018-07-23
  • 2022-08-24
  • 2017-11-17
  • 2012-01-26
  • 2017-05-23
  • 2011-09-09
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多