如何将一张图片的IPTC数据复制到另一张图片?

5
我正在开发一个图像处理脚本来调整图像大小。问题是,当我制作图像的调整副本时,它没有复制IPTC数据。因此,我一直在检查IPTC PHP函数(iptcparse和iptcembed),但我感到很困惑。使用iptcparse非常简单。它可以将所有数据获取到一个数组中,然后我使用print_r打印出来。但据说实用的是iptcembed,因为它允许您(如名称所示)在您的图像上嵌入IPTC。从php.net中的示例中观察,我还是不太明白。我是否需要手动创建数组才能将其嵌入新图像中。我猜应该有一种简单的方法可以将一个图像的IPTC数据复制并嵌入到另一个图像中。
欢迎任何回答。 提前致谢。

2
你无法在新图像中获取IPTC数据的原因是,调整大小的图像是从PHP的空白图像对象创建的,因此它不会继承旧图像的任何元信息。另外,请查看http://stackoverflow.com/questions/24456/embedding-iptc-image-data-with-php-gd?rq=1 - Gunjan Karun
1个回答

1

我认为这很简单。要从旧图像中获取IPTC数据,您只需使用getimagesize和iptcparse函数即可。

在php.net上,您可以找到以下示例来实现此目标:

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    var_dump($iptc);
}
?> 

将此示例与iptcembed方法结合使用,您就拥有了所需的一切。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接