Как получить теги из изображения метаданных php? - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь получить метки из метаданных изображения.Я использую следующую функцию, чтобы получить метаданные, но теги находятся в массиве.Я не знаю, как напечатать все теги.

Функция:

<?php
function cameraUsed($imagePath) {
    if ((isset($imagePath)) and (file_exists($imagePath))) {
      $exif_ifd0 = read_exif_data($imagePath ,'IFD0' ,0);       
      $exif_exif = read_exif_data($imagePath ,'EXIF' ,0);
      $notFound = "Unavailable";
      if (@array_key_exists('Make', $exif_ifd0)) {
        $camMake = $exif_ifd0['Make'];
      } else { $camMake = $notFound; }
      if (@array_key_exists('Model', $exif_ifd0)) {
        $camModel = $exif_ifd0['Model'];
      } else { $camModel = $notFound; }
      if (@array_key_exists('ExposureTime', $exif_ifd0)) {
        $camExposure = $exif_ifd0['ExposureTime'];
      } else { $camExposure = $notFound; }
      if (@array_key_exists('ApertureFNumber', $exif_ifd0['COMPUTED'])) {
        $camAperture = $exif_ifd0['COMPUTED']['ApertureFNumber'];
      } else { $camAperture = $notFound; }
      if (@array_key_exists('DateTime', $exif_ifd0)) {
        $camDate = $exif_ifd0['DateTime'];
      } else { $camDate = $notFound; }
      if (@array_key_exists('ISOSpeedRatings',$exif_exif)) {
        $camIso = $exif_exif['ISOSpeedRatings'];
      } else { $camIso = $notFound; }     
      if (@array_key_exists('UndefinedTag:0xA434',$exif_exif)) {
        $test = $exif_exif['UndefinedTag:0xA434'];
      } else { $test = $notFound; }     

      if (@array_key_exists('UndefinedTag:0xA434',$exif_exif)) {
        $test = $exif_exif['UndefinedTag:0xA434'];
      } else { $test = $notFound; }

      if (@array_key_exists('UndefinedTag:0xA432',$exif_exif)) {
        $tags = $exif_exif['UndefinedTag:0xA432'];
      } else { $tags = $notFound; }

      $return = array();
      $return['make'] = $camMake;
      $return['model'] = $camModel;
      $return['exposure'] = $camExposure;
      $return['aperture'] = $camAperture;
      $return['date'] = $camDate;
      $return['iso'] = $camIso;
      $return['tags'] = $tags;
      return $return;

    } else {
      return false; 
    } 
}

?>

То есть вывод из exif_read_data: enter image description here Я пробовал с:

  if (@array_key_exists('UndefinedTag:0xA432',$exif_exif)) {
    $tags = $exif_exif['UndefinedTag:0xA432'];
  } else { $tags = $notFound; }

Но при попытке печати ничего нет.

1 Ответ

0 голосов
/ 28 октября 2018

Вы можете использовать библиотеку из http://image.intervention.io/ бесплатно, и вы получите exif-данные изображения с этим.

// read all existing data into an array
$data = Image::make('public/foo.jpg')->exif();

// read model of the camera
$name = Image::make('public/foo.jpg')->exif('Model');

Надеюсь, это поможет вам:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...