Php 在web上读取PNG元数据
我最近编写了一个Python模块,该模块使用PIL将元标记和值写入PNG图像,目的是让网页读取标记并相应地对图像进行排序(我对相机类型之类的默认内容不感兴趣,例如,如果我刚刚参加过集会,我会附加“CarModel”之类的标记) 有人推荐一种阅读PNG元数据的方法吗?我现在正在使用PHP(http://stackoverflow.com/questions/2190236/how-can-i-read-png-metadata-from-php (在底部)这很好,因为它只显示了我添加的标签,但很烦人,因为我无法用许多图片的数据构建一个整洁的数组。javascript可以做到这一点吗Php 在web上读取PNG元数据,php,javascript,png,metadata,Php,Javascript,Png,Metadata,我最近编写了一个Python模块,该模块使用PIL将元标记和值写入PNG图像,目的是让网页读取标记并相应地对图像进行排序(我对相机类型之类的默认内容不感兴趣,例如,如果我刚刚参加过集会,我会附加“CarModel”之类的标记) 有人推荐一种阅读PNG元数据的方法吗?我现在正在使用PHP(http://stackoverflow.com/questions/2190236/how-can-i-read-png-metadata-from-php (在底部)这很好,因为它只显示了我添加的标签,但很烦
很抱歉,如果我解释得很糟糕,但如果需要,我会重新解释。您应该看看下面的php函数-
PS:据我所知,javascript无法做到这一点您应该看看下面的php函数-
PS:据我所知,javascript无法做到这一点,这里有一个指向声称能够读取图像元数据的javascript库的链接:
这里有一个指向声称能够读取图像元数据的Javascript库的链接:
nihilogic Javascript库对于客户端EXIF读取和解析确实非常有用;但这仅适用于JPEG图像,因为元数据仅支持JPEG和TIFF格式(TIFF格式仅由Safari浏览器本机支持)。
PNG可以包含元数据,但不能像JPEG或TIFF格式那样以IPTC或EXIF字段的形式包含。nihilogic Javascript库对于客户端EXIF读取和解析确实非常有用;但这仅适用于JPEG图像,因为只有JPEG和TIFF格式才支持元数据(TIFF格式仅在Safari浏览器本机支持)。
PNG可以包含元数据,但不能像JPEG或TIFF格式那样以IPTC或EXIF字段的形式。我有一个类似的任务。我必须将物理维度和附加元数据写入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);
我有一个类似的任务。我必须将物理维度和附加元数据写入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);
我查看了一下,但它似乎只有TIFF和JPEG的兼容性。我查看了一下,但它似乎只有TIFF和JPEG的兼容性。