在网络上读取 PNG 元数据

Reading PNG meta data on the web

本文关键字:PNG 元数据 读取 网络      更新时间:2023-09-26

我最近编写了一个 Python 模块,该模块使用 PIL 将元标记和值写入 PNG 图像,目的是让网页读取标签并相应地对图像进行排序(我对相机类型等默认内容不感兴趣,例如,如果我刚刚参加过集会,我会附加"CarModel"等标签。

有人推荐一种阅读 PNG 元的方法吗? 我现在正在使用 PHP(底部 http://stackoverflow.com/questions/2190236/how-can-i-read-png-metadata-from-php),这很棒,因为它只描绘了我添加的标签,但很烦人,因为我无法弄清楚用许多图片的数据构建一个整洁的数组。 JavaScript可以做到这一点吗?

对不起,如果我在解释时很垃圾,但如果需要,我会重新解释。

你应该看看下面的php函数 - exif_read_data

PS:据我所知,javascript不能做到这一点

我也有类似的任务。我必须将物理尺寸和其他元数据写入 PNG 文件。我找到了一些解决方案并将其组合成一个小库。PNG 元数据

它可以读取和写入 PNG 元数据。 它可以在客户端和服务器端使用。也许它会帮助某人。

以下是在浏览器中读取PNG元数据的方法:

        function loadFileAsBlob(url){
            return new Promise((resolve, reject) => {
                var xhr = new XMLHttpRequest();
                xhr.open('GET', url, true);
                xhr.responseType = 'blob';
                xhr.onload = function(e) {
                    if (this.status === 200) {
                        resolve(this.response);
                        // myBlob is now the blob that the object URL pointed to.
                    }else{
                        reject(this.response);
                    }
                };
                xhr.send();
            })
        };
        const blob = await loadFileAsBlob('1000ppcm.png');
        metadata = readMetadataB(blob);

下面是一个声称能够读取图像元数据的 Javascript 库的链接:

http://blog.nihilogic.dk/2008/08/imageinfo-reading-image-metadata-with.html

虚无逻辑的Javascript库对于客户端EXIF读取和解析确实非常有用;但这仅适用于JPEG图像,因为元数据仅支持JPEG和TIFF格式(而TIFF格式仅由Safari浏览器原生支持)。PNG 可以包含元数据,但不能以 IPTC 或 EXIF 字段的形式出现,因为 JPEG 或 TIFF 格式允许。