我想在网站上使用 PHP 创建 PNG 图像。这些应以规定的比例打印。所以我想直接使用 PHP 设置图像的 DPI 值。不幸的是,我没有找到任何函数调用。
有没有可以设置/更新PNG文件元数据的功能?也许另一种解决方案更合理,因为使用带有 CSS 样式表的 HTML-Wrapper 进行打印,外部定义了分辨率。但我更喜欢“直接在图像上”的方法......
PNG 可以包含任意标题。如果您查看PNG 规范,您可以将文本块(称为块)添加到给定的 PNG。有关 tEXT 块的更多信息,请参阅规范的第 4.2.3 节。
例如,Adobe Photoshop 将元 XML 添加到其 PNG。我不确定GD是否支持这一点,但我会从那里开始。这绝对是可能的。
这是一些处理解析 PNG 块的 PHP 代码。它可能会引导你朝着正确的方向前进。http://code.svn.wordpress.org/imagelibs/libpng.php
这是 PNG 文本编辑器的屏幕截图,显示了 Photoshop 生成的 XML。https://stackoverflow.com/a/14356339/278976
最简单的方法是使用 ImageMagick,如this answer中所建议的那样。如果您想在纯 PHP 中设置 PNG 分辨率,您可以查看我对类似问题的回答。