我试图使用iptcembed()将IPTC数据嵌入到JPEG图像上,但遇到了一些麻烦。
我已经证实它在最终产品中:
// Embed the IPTC data
$content = iptcembed($data, $path);
// Verify IPTC data is in the end image
$iptc = iptcparse($content);
var_dump($iptc);
返回输入的标记。
但是,当我保存和重新加载图像时,标记是不存在的:
// Save the edited image
$im = imagecreatefromstring($content)
我感兴趣的是在字节级别上手动将IPTC字段注入JPG文件。JPEG文件有多个元数据段,具有可观的大小标记。分段-- IPTC的容器是:
App13 -从FF ED XX XX ..开始
8 8BIM IPTC文本元数据-从38 42 49 4D 04 04 00 00 00 00 XX XX ..开始
IPTC 字段以1C 02 50 XX XX .. (0x50 = 80,IPTC字段#80)开头。
(XX XX =2字节的长度-字描述所述段数据的大小)。
JPEG文件和元数据中是否还有其他大小标记值得注意?在为自定义IPTC字段追加元数据段时,是否必须增加它们的大小?
如何添加自定义元数
我需要从服务器上上传的文件中获取元数据,尤其是iptc元数据。
我找到了两个可以导入的包,但它们都需要"libiptcdata“库。这应该不是问题,但在我使用brew安装库之后,我得到了以下错误:
../../github.com/Melraidin/iptc/main.go:10:10: fatal error: libiptcdata/iptc-data.h: No such file or directory #include <libiptcdata/iptc-data.h> ^~~~~~~~~~~~~~~~~~~~~~~~~ compilat