Мне нужно получить любые значения из возврата Imagemagick (xmp) - PullRequest
0 голосов
/ 25 сентября 2019

Я использую библиотеку ImageMagick (macos / linux) через командную строку с PHP (функция shell_exec), чтобы получить весь XMP из картинки jpg.

Мне нужно получить значения тегов из возврата из exec,как люди на картинке и ваша позиция:

Если возможно, мне нужно получить результат в массиве или преобразовать возвращаемый массив тоже, это решит мою проблему!

Человека можно найти втег xml: Iptc4xmpExt: PersonInImage и ваши позиции можно найти в mwg-rs: RegionList

PHP - Shell Exec (imagemagick + xmp)

$cmd = 'convert -ping picture.jpg XMP:-';
$xml = shell_exec($cmd);

Shell Exec Return

Возврат может быть и файлом!

<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21        ">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about="DJI Meta Data"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:drone-dji="http://www.dji.com/drone-dji/1.0/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
   crs:AlreadyApplied="True">
   <dc:subject>
    <rdf:Bag>
     <rdf:li>Luna</rdf:li>
     <rdf:li>Moisés</rdf:li>
    </rdf:Bag>
   </dc:subject>
   <xmpMM:History>
    <rdf:Seq>
     <rdf:li
      stEvt:action="derived"
      stEvt:parameters="converted from image/dng to image/jpeg, saved to new location"/>
     <rdf:li
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:1a78e599-4b34-4a7b-968e-5363dcacdee8"
      stEvt:when="2019-07-24T16:10:06-03:00"
      stEvt:softwareAgent="Adobe Photoshop Lightroom Classic 8.0 (Macintosh)"
      stEvt:changed="/"/>
    </rdf:Seq>
   </xmpMM:History>

   <Iptc4xmpExt:PersonInImage>
    <rdf:Bag>
     <rdf:li>Luna</rdf:li>
     <rdf:li>Moisés</rdf:li>
    </rdf:Bag>
   </Iptc4xmpExt:PersonInImage>

   <mwg-rs:Regions rdf:parseType="Resource">
    <mwg-rs:AppliedToDimensions
     stDim:w="4048"
     stDim:h="3032"
     stDim:unit="pixel"/>
    <mwg-rs:RegionList>
     <rdf:Bag>
      <rdf:li>
       <rdf:Description
        mwg-rs:Rotation="0.00000"
        mwg-rs:Name="Moisés"
        mwg-rs:Type="Face">
       <mwg-rs:Area
        stArea:h="0.03066"
        stArea:w="0.02071"
        stArea:x="0.13715"
        stArea:y="0.64631"/>
       </rdf:Description>
      </rdf:li>
      <rdf:li>
       <rdf:Description
        mwg-rs:Rotation="0.00000"
        mwg-rs:Name="Luna"
        mwg-rs:Type="Face">
       <mwg-rs:Area
        stArea:h="0.03560"
        stArea:w="0.02220"
        stArea:x="0.18293"
        stArea:y="0.61604"/>
       </rdf:Description>
      </rdf:li>
     </rdf:Bag>
    </mwg-rs:RegionList>
   </mwg-rs:Regions>
  </rdf:Description>
 </rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>

Большое спасибо!

...