Какие форматы изображений содержат метаданные и как их очистить в PHP? - PullRequest
6 голосов
/ 05 сентября 2010

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

Я знаю, что у JPEG есть EXIF ​​, но я не уверен насчет PNG или GIF(оба могут быть загружены на мой сайт от общественности).

Есть ли в этих форматах и ​​метаданные, и как они хранятся?Каков наилучший способ удалить его?

Я использую PHP 5.29.

Спасибо

Ответы [ 4 ]

3 голосов
/ 29 мая 2012

Вы можете попробовать http://www.php.net/manual/en/imagick.stripimage.php

$f = '16262403.jpg';
$i = new Imagick($f);
$p = $i->getImageProperties();
var_dump($p);
array(5) {
  ["comment"]=>
  string(20) "(C) Drom.ru #4495317"
  ["date:create"]=>
  string(25) "2012-05-29T17:15:32+03:00"
  ["date:modify"]=>
  string(25) "2012-05-29T17:15:30+03:00"
  ["jpeg:colorspace"]=>
  string(1) "2"
  ["jpeg:sampling-factor"]=>
  string(11) "2x2,1x1,1x1"
}

$i->stripImage();

$p = $i->getImageProperties();
var_dump($p);
array(2) {
  ["jpeg:colorspace"]=>
  string(1) "2"
  ["jpeg:sampling-factor"]=>
  string(11) "2x2,1x1,1x1"
}
2 голосов
/ 05 сентября 2010

Самый простой способ - скопировать их в новое изображение с помощью GD - вы сохраняете всю информацию об изображении, но избавляетесь от метаданных.

0 голосов
/ 05 сентября 2010

Все изображения, которые используют любой вид сжатия, содержат метаданные. Некоторые из них очень скромные, тогда как другие форматы говорят вам больше, чем вам когда-либо понадобится.

0 голосов
/ 05 сентября 2010

оба имеют метаданные;)

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