首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取php格式的jpg图片的iptc元数据

获取php格式的jpg图片的iptc元数据
EN

Stack Overflow用户
提问于 2012-11-27 05:14:59
回答 3查看 7.6K关注 0票数 5

我正在尝试用php从jpg image (http://pepeliana.com/images/DSC4008.jpg)中获取一些IPTC元数据。参考图像的标题元数据被设置为"Testing“。我已经看过php手册和两个看起来很有用的函数iptcparse()和exif_read_data()。这两个功能都在php中启用。然而,对于我来说,我弄不明白为什么两个函数都不能返回所需的数据。以下是我尝试过的示例代码,我还应该提到,我还在几个具有标题iptc元数据的图像上尝试了此代码(因此排除了损坏图像或设置不当的元数据的可能性):

代码语言:javascript
复制
<?php 
$size = getimagesize ('DSC4008.jpg', $info);       
 if(is_array($info)) {   
    $iptc = iptcparse($info["APP13"]);
    foreach (array_keys($iptc) as $s) {             
        $c = count ($iptc[$s]);
        for ($i=0; $i <$c; $i++)
        {
            echo $s.' = '.$iptc[$s][$i].'<br>';
        }
    }                 
}
 ?>

另外:

代码语言:javascript
复制
<?php
$exif = exif_read_data('DSC4008.jpg', 0, true);
echo $exif['WINXP']['Title'];
?>

正如您所看到的,这就像它得到的一样简单,然而,我也不能返回我想要的东西。显然,我肯定遗漏了一些明显简单的东西,不是吗?请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2012-11-27 05:43:53

您已将镜像的ImageDescription设置为"Testing“

这将在这里起作用:

代码语言:javascript
复制
$exif = exif_read_data('1.jpg','IFD0',true);
echo $exif["IFD0"]["ImageDescription"];

回声

代码语言:javascript
复制
Testing
票数 1
EN

Stack Overflow用户

发布于 2018-06-19 21:04:26

试试这个:

代码语言:javascript
复制
$size = getimagesize( 'DSC4008.jpg', $iptch );

$iptc = isset( $iptch['APP13'] ) ? iptcparse( $iptch['APP13'] ) : false;
$name = isset( $iptc['2#005'] ) ? $iptc['2#005'][0] : 'Undefined';
票数 1
EN

Stack Overflow用户

发布于 2018-09-06 20:37:27

我也有类似的问题,为此我创建了自己的library

首先,您需要使用Composer安装它

代码语言:javascript
复制
composer require ibudasov/php7-iptc-manager

然后

代码语言:javascript
复制
// import the Manager class
use iBudasov\Iptc\Manager;

// ... and instantiate it!
$manager = Manager::create();

$manager->loadFile('./DSC4008.jpg');

$title = $manager->getTag(Tag::OBJECT_NAME);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13573272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档