如何检测图像是 PNG 还是 APNG 格式?

发布于 2024-10-12 06:19:46 字数 439 浏览 7 评论 0原文

可能的重复:
我可以通过编程方式确定 PNG 是否为动画吗?

APNG 向后兼容 PNG。我在十六进制编辑器中打开 apng 和 png 文件,前几个字节看起来相同。因此,如果用户上传这两种格式中的任何一种,我如何检测该格式的真正含义是什么?我在一些阻止 apng 的网站上看到过这种做法。

我猜 ImageMagick 库使这变得容易,但是如果我要在不使用图像处理库(出于学习目的)的情况下进行检测怎么办?我可以查找特定字节来告诉我该文件是否为 apng 吗?

欢迎任何语言的解决方案。

Possible Duplicate:
Can I programatically determine if a PNG is animated?

APNG is backwards compatible with PNG. I opened up an apng and png file in a hex editor and the first few bytes look identical. So if a user uploads either of these formats, how do I detect what the format really is? I've seen this done on some sites that block apng.

I'm guessing the ImageMagick library makes this easy, but what if I were to do the detect without the use of an image processing library (for learning purposes)? Can I look for specific bytes that tell me if the file is apng?

Solutions in any language is welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

玻璃人 2024-10-19 06:19:46

来自 http://en.wikipedia.org/wiki/Apng

在 PNG 和 MNG 格式的用户和维护者中,APNG 并不是
深受好评。特别是,PNG 被认为是单个图像
格式 [2]。 APNG 隐藏 PNG 辅助块中的后续帧
以这种方式,不支持 APNG 的应用程序会忽略它们,但是
否则,不会对格式进行任何更改以允许软件
区分动画和非动画图像
。 [斜体是我的]

[2] "PNG (便携式网络图形)规范,版本 1.1#8.4 多图像扩展”

From http://en.wikipedia.org/wiki/Apng:

Among users and maintainers of the PNG and MNG formats, APNG was not
well received. In particular, PNG was conceived to be a single-image
format [2]. APNG hides the subsequent frames in PNG ancillary chunks
in such a way that APNG-unaware applications would ignore them, but
there are otherwise no changes to the format to allow software to
distinguish between animated and non-animated images
. [italics mine]

[2] "PNG (Portable Network Graphics) Specification, Version 1.1#8.4. Multiple-image extension"

哀由 2024-10-19 06:19:46

请参阅我可以通过编程方式确定是否PNG 是动画的?:您可以搜索字符串“acTL”。

See the solution of Can I programatically determine if a PNG is animated?: you could search for the string "acTL".

人间不值得 2024-10-19 06:19:46

APNG 和 PNG 文件的前几个字节的控制可以轻松绕过。所以这个方法并不安全。用户可以更改文件的十六进制代码并传递您的此控制权。

APNG and PNG files' first few bytes' control can be bypass, easily . So this method isn't secure. User can change file's hex code and pass your this control.

来世叙缘 2024-10-19 06:19:46

您可以使用大多数 Unix 平台上已安装的 libmagic。

You can use libmagic which is already installed on most Unix platforms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文