iptcparse în PHP

Imagini PHP 4+

Citește un bloc IPTC dintr-o fotografie și returnează etichetele lui (autor, descriere, cuvinte cheie) ca tablou.

Sintaxă
iptcparse(string $iptc_block): array|false

Ce face iptcparse

Blocul IPTC se obține cu al doilea parametru al lui getimagesize: cheia APP13 din tabloul $info. iptcparse îl transformă într-un tablou cu chei de forma "2#080" (înregistrarea 2, eticheta 80). Fiecare valoare este un tablou, pentru că o etichetă poate apărea de mai multe ori (de exemplu cuvintele cheie).

Etichete uzuale: 2#005 titlul, 2#025 cuvintele cheie, 2#080 autorul, 2#116 drepturile de autor, 2#120 descrierea.

Parametri

Parametru Descriere
$iptc_block Blocul IPTC binar, de obicei $info["APP13"].

Ce returnează

Tabloul cu etichete, sau false dacă blocul nu conține date IPTC.

Exemple

Exemplul 1: Autorul și cuvintele cheie ale unei fotografii

<?php
imagejpeg(imagecreatetruecolor(50, 50), "foto.jpg");
$iptc = chr(0x1C) . chr(2) . chr(80) . pack("n", 11) . "Ana Popescu"
    . chr(0x1C) . chr(2) . chr(25) . pack("n", 4) . "mare"
    . chr(0x1C) . chr(2) . chr(25) . pack("n", 5) . "vară";
file_put_contents("foto.jpg", iptcembed($iptc, "foto.jpg"));

getimagesize("foto.jpg", $info);
if (isset($info["APP13"])) {
    $date = iptcparse($info["APP13"]);
    echo "Autor: " . $date["2#080"][0] . "\n";
    echo "Cuvinte cheie: " . implode(", ", $date["2#025"]);
}

Rezultat

Autor: Ana Popescu
Cuvinte cheie: mare, vară

Greșeli frecvente

  • Accesezi $info["APP13"] fără să verifici. Majoritatea imaginilor nu au IPTC, iar cheia lipsește.

Comenzi înrudite

  • iptcembed: Inserează date IPTC (autor, titlu, cuvinte cheie) într-o imagine JPEG și returnează imaginea nouă.
  • getimagesize: Află lățimea, înălțimea și tipul unei imagini (JPG, PNG, GIF, WebP etc.) fără să o încarce complet.