Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Обрезка лишнего фона изображений


Recommended Posts

Недавно искал способ, как обрезать лишний белый фон у изображений. После экспериментов сделал так: В контроллере загрузчика admin/controller/common/filemanager.php, я после загрузки файла на сервер написал вот такое дополнение:

if (!$json) {
  move_uploaded_file($file['tmp_name'], $directory . '/' . $filename);

  $file = $directory . '/' . $filename;

  $info = getimagesize($file);

  if($info) {
      $mime = isset($info['mime']) ? $info['mime'] : '';

      if ($mime == 'image/gif') {
          $image = imagecreatefromgif($file);
      } elseif ($mime == 'image/png') {
          $image = imagecreatefrompng($file);
      } elseif ($mime == 'image/jpeg') {
          $image = imagecreatefromjpeg($file);
      }

      $cropped = imagecropauto($image, IMG_CROP_THRESHOLD, null, 16777215);

      if($cropped) {
          imagedestroy($image);
          $image = $cropped;
      }

      if (is_resource($image)) {
          if ($mime == 'image/jpeg') {
              imagejpeg($image, $file, 100);
          } elseif ($mime == 'image/png') {
              imagepng($image, $file);
          } elseif ($mime == 'image/gif') {
              imagegif($image, $file);
          }

          imagedestroy($image);
      }
  }
}

Знатоки php скажите, правильно ли я сделал, будут ли проблемы и как можно улучшить этот код? И еще, я правильно сделал, что обрабатываю файл уже после загрузки? Я не знаю, можно ли подменять файл в $file['tmp_name']. Ну и если кому понадобится - берите :)

  • +1 1
Надіслати
Поділитися на інших сайтах


можно было подправить класс, обрабатывающий загружаемые фото, а не делать еще одну обработку поверх :)

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах

В system/library модель редактировал. Но проблема в том, что там каждый раз будет код выполняться. А тут только один раз - при загрузке изображения на сервер в image/catalog.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.