我最近编写了一个Python模块,使用PIL将元标记和值写入PNG图像,目的是让网页读取标记并相应地对图像进行排序(我对像Camera这样的默认内容不感兴趣输入,如果我刚参加过集会,我会附上像“CarModel”这样的标签。
有没有人推荐一种阅读PNG元数据的方法?我目前正在使用PHP(底部是http://stackoverflow.com/questions/2190236/how-can-i-read-png-metadata-from-php)这很好,因为它只是图片我添加的标签,但令人讨厌,因为我无法想象用许多图片的数据构建一个整洁的数组。 javascript可以这样做吗?
抱歉,如果我一直在解释垃圾,但如果有需要,我会重新解释。
答案 0 :(得分:2)
你应该看看下面的php函数 - exif_read_data
PS:据我所知,javascript无法做到这一点
答案 1 :(得分:0)
这是一个声称能够读取图像元数据的Javascript库的链接:
http://blog.nihilogic.dk/2008/08/imageinfo-reading-image-metadata-with.html
答案 2 :(得分:0)
nihilogic Javascript库对于客户端EXIF读取和解析确实非常有用;但这仅适用于JPEG图像,因为仅以JPEG和TIFF格式支持元数据(并且仅Safari浏览器本身支持TIFF格式)。 PNG可以包含元数据,但不包括JPEG或TIFF格式允许的IPTC或EXIF字段形式。
答案 3 :(得分:0)
它可以读取和写入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);