изменить exif

Тема в разделе "PHP", создана пользователем Levitt, 10 авг 2011.

Модераторы: latteo
  1. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    357
    Симпатии:
    36
    Есть ли способ на пхп изменить данные EXIF изображения или на крайний случай стереть их?
     
  2. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Вроде, можно произвести манипуляции с картинкой, вот этими функциями

    http://mx2.php.net/manual/en/ref.image.php

    при этом экзив теряется...
     
  3. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    628
    Симпатии:
    1.388
    Levitt, о работе с EXIF из PHP вы можете прочитать здесь.
    Для того, чтобы стереть EXIF из формата JPG можно воспользоваться функцией imagecreatefromjpeg. Для картинок формата TIFF возможен вариант только при наличии установленной ImageMagick.

    P.S. PHPCod3r, не понимаете сути вопроса - не стоит флудить, ваш пост не дал абсолютно никакой полезной информации по вопросу, заданному ТС.
     
  4. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    А что этой функции нет, в приведенной мной ссылке...
    Вот видел в одном скрипте такую загрузку файлов, возможно вариант
    не оптимальный, но тем не менее рабочии
    PHP:
    function UploadThumb ($tmp_thumb$t_vcode$t_vfile$thumb) {
      global 
    $imgmaxwidth$apath;

      
    $newthumb "{$apath}/vids/{$t_vcode}/".$t_vfile.".jpg";
      if(@
    move_uploaded_file($tmp_thumb$newthumb)) 
        {
         list(
    $width$height$image_type) = @getimagesize($newthumb);
         if(
    $width && $height && $image_type === 2
           {
            if(
    $thumb != 'Y')
              {
               
    $dest_width  $imgmaxwidth;
               
    $dest_height = ($height*$imgmaxwidth)/$width;
               
    $src_img = @imagecreatefromjpeg($newthumb);
               
    $dst_img = @imagecreatetruecolor($dest_width$dest_height);
               @
    imagecopyresampled($dst_img$src_img0000$dest_width$dest_height$width$height);
               @
    imagejpeg($dst_img$newthumb);
               @
    imagedestroy($src_img);
              }
           }
          else { 
    unlink($newthumb); }
        }
    }
     
  5. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    Правы оба, и при ресайзе и без ресайза, просто создав из файла и сохранив в файл exif затирается.
     
  6. maniche

    maniche Писатель

    Регистр.:
    7 авг 2011
    Сообщения:
    6
    Симпатии:
    1
  7. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Ищи классы, для работы с EXIF.

    Но класы это не выход, для нормальной, быстрой и стабильной работы необходимо использовать дополнительные расширения (библеотеки) к PHP, если сервер позволяет (если у тебя не шаред хостинг, и не облоченый VPS, заморочься поставь расширение, производительность выше нагрузка меньше), и тогда будет тебе счастье.
     
  8. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    357
    Симпатии:
    36
    Ну, imageresize или imagecreatejpeg в comments добавляет "created by GD... compression..", просмотрев же топ поисковика вижу в exif попадаются с человекосоставленным описанием в графе comments или пустые.
    Попробую разобраться с указанной в ссылке PHP Exif Library, надеюсь, что это не то же что http://php.net/manual/en/ref.exif.php - то тут перечисленны только функции для считывания.

    Хотел бы знать какие именно
    нужно использовать.
     
  9. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Конкретно не скажу название, так как не помню да и не нужно мне это было, натыкался на такие библиотеки, когда писал один скрипт для работы с mp3 файлами...