Запрещает imagejpeg ()сохранять данные EXIF ​​для изображений (спец. FileDateTime)

Наш сервер сохраняет данные EXIF ​​в каждый файл, сохраненный с помощью imagejpeg(). Насколько мне известно, это не поведение по умолчанию (или даже возможное, судя по тому, что я читал ). Но это происходит , и из-за того, что FileDateTimeинформация включена (и используется timeсохранения ), это нарушает функциональность нашей системы загрузки/утверждения (md5_file(). возвращает другое значение для одного и того же изображения из-за того, что FileDateTimeвсегда отличается ).

Есть ли способ запретить imagejpeg()сохранять данные EXIF ​​для изображений по умолчанию?

Информация о сервере

  • CentOS 5
  • Parallels Plesk Panel 10.4.4
  • Версия GD :в комплекте (Совместимость с 2.0.34)
  • PHP 5.3

Код

<?php
public function upload_book_cover($book, $cover, $filename = NULL, $approved = NULL){
    global $c_consummo, $user;
    $approved = bool($approved, true, true);
    if(filesize($cover)>5242880){
        return false; // Too large;
    }
    $max_width = 450;
    $cover_info = getimagesize($cover);
    if(!$this->is_valid_book_cover_type($cover_info['mime'])){
        return false; // Invalid image type
    }
    $width = $cover_info[0];
    $height = $cover_info[1];
    if($width<200){
        return false; // Too small
    } elseif($width>1500){
        return false; // Too wide
    }
    $original_cover = false;
    switch($cover_info[2]){
        case IMAGETYPE_GIF:
            $original_cover = imagecreatefromgif($cover);
            break;
        case IMAGETYPE_JPEG:
            $original_cover = imagecreatefromjpeg($cover);
            break;
        case IMAGETYPE_PNG:
            $original_cover = imagecreatefrompng($cover);
            break;
        case IMAGETYPE_BMP:
            $original_cover = imagecreatefrombmp($cover);
            break;
    }
    if(!$original_cover){
        return false; // Unsupported type
    }
    if($width>$max_width){
        $new_width = $max_width;
    } else {
        $new_width = $width;
    }
    $new_height = round($height*($new_width/$width));
    $new_cover = imagecreatetruecolor($new_width, $new_height);
    if(!$new_cover){
        return false; // Could not create true color image
    }
    if(!imagecopyresampled($new_cover, $original_cover, 0, 0, 0, 0, $new_width, $new_height, $width, $height)){
        return false; // Could not copy image
    }
    if(!imagejpeg($new_cover, $cover, 100)){
        return false; // Image could not be saved to tmp file
        // This is adding *new* EXIF data to images by itself
    }
    $file_hash = md5_file($cover);
    $duplicate_book_cover = $this->find_duplicate_book_cover($book, $file_hash);
    if($duplicate_book_cover){
        return $duplicate_book_cover;
    }
    $file_id = $c_consummo->upload_file($cover, $filename);
   ...
}
8
задан 0b10011 10 May 2012 в 14:56
поделиться