首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中添加Gpano XMP元数据?

如何在PHP中添加Gpano XMP元数据?
EN

Stack Overflow用户
提问于 2018-02-16 01:49:56
回答 1查看 550关注 0票数 1

我需要在PHP中有计划地添加Gpano元数据,但我不知道该怎么做。

输入:一个没有Gpano元数据的简单的360图像。格式: jpeg、jpg。

输出:图像必须与带有Gpano元数据的Facebook 360一起工作,如下所示:

<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/">
    <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
    <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware>
    <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware>
    <GPano:ProjectionType>equirectangular</GPano:ProjectionType>
    <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees>
    <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees>
    <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees>
    <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees>
    <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees>
    <GPano:CroppedAreaLeftPixels>0</GPano:CroppedAreaLeftPixels>
    <GPano:CroppedAreaTopPixels>0</GPano:CroppedAreaTopPixels>
    <GPano:CroppedAreaImageWidthPixels>4000</GPano:CroppedAreaImageWidthPixels>
    <GPano:CroppedAreaImageHeightPixels>2000</GPano:CroppedAreaImageHeightPixels>
    <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels>
    <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels>
    <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate>
    <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate>
    <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount>
    <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed>
</rdf:Description>

最重要的是下面这几行:

<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
<GPano:ProjectionType>equirectangular</GPano:ProjectionType>

我尝试了这里提供的PHPJPEG元数据工具包:http://www.ozhiker.com/electronics/pjmt/,下面是我的代码,但我不知道到底要添加什么:

require_once('PHP_JPEG_Metadata_Toolkit_1.12/JPEG.php');
require_once('PHP_JPEG_Metadata_Toolkit_1.12/XMP.php');

$metas = get_jpeg_header_data('image.jpg');
put_XMP_text($metas, 'what to write here ?');

我也尝试过windows软件,它运行得很好,但无法在我的网络服务器(linux)上使用: Exif Fixer for Windows可以在这里找到:http://panoramaphotographer.com/software/exiffixer/

如果有人能帮助我编写代码,或者有人能发布一个有效的例子,那就太棒了!

提前感谢所有人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-26 04:37:36

我用了The PHP JPEG Metadata Toolkit

只需注意,它已经有几年没有更新了,可能会在PHP 7+中抛出一些错误,这些错误很容易修复(比如简短的打开php标签和数字前的0)。

修复这个问题后,用法非常简单:

require 'PHP_JPEG_Metadata_Toolkit_1.12/' . 'EXIF.php';

$filename = 'test.jpg';
$jpeg_header_data = get_jpeg_header_data($filename);
$xmp = '
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/">
<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
<GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware>
<GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware>
<GPano:ProjectionType>equirectangular</GPano:ProjectionType>
<GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees>
<GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees>
<GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees>
<GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees>
<GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees>
<GPano:CroppedAreaLeftPixels>0</GPano:CroppedAreaLeftPixels>
<GPano:CroppedAreaTopPixels>0</GPano:CroppedAreaTopPixels>
<GPano:CroppedAreaImageWidthPixels>4000</GPano:CroppedAreaImageWidthPixels>
<GPano:CroppedAreaImageHeightPixels>2000</GPano:CroppedAreaImageHeightPixels>
<GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels>
<GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels>
<GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate>
<GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate>
<GPano:SourcePhotosCount>50</GPano:SourcePhotosCount>
<GPano:ExposureLockUsed>False</GPano:ExposureLockUsed>
</rdf:Description>
';
$jpeg_header_data = put_XMP_text($jpeg_header_data, $xmp);
put_jpeg_header_data($filename, $filename, $jpeg_header_data);

您可以在Google Developers documentation page中找到有关所需XMP元数据的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48813406

复制
相关文章

相似问题

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