Я тоже искал решение этой проблемы.В конце концов я использовал PHP для перезаписи JPEG с удалением ВСЕХ данных Exif.Мне это не понадобилось для моих целей.
У этой опции есть несколько преимуществ ...
- Файл меньше, потому что данные EXIF пропали.
- Нет потери качества изображения (поскольку данные изображения не изменяются).
Также примечание об использовании imagecreatefromjpeg: я попробовал это, и мои файлы стали больше.Если вы установите качество 100, ваш файл будет БОЛЬШИМ, потому что изображение было пересчитано, а затем сохранено без потерь.И если вы не используете качество 100, вы теряете качество изображения.Единственный способ избежать повторной выборки - не использовать imagecreatefromjpeg.
Вот моя функция ...
function removeExif($old, $new)
{
$f1 = fopen($old, 'rb');
$f2 = fopen($new, 'wb');
// Find EXIF marker
while (($s = fread($f1, 2))) {
$word = unpack('ni', $s)['i'];
if ($word == 0xFFE1) {
// Read length (includes the word used for the length)
$s = fread($f1, 2);
$len = unpack('ni', $s)['i'];
// Skip the EXIF info
fread($f1, $len - 2);
break;
} else {
fwrite($f2, $s, 2);
}
}
// Write the rest of the file
while (($s = fread($f1, 4096))) {
fwrite($f2, $s, strlen($s));
}
fclose($f1);
fclose($f2);
}