Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


Muvka
 Поделиться

Рекомендованные сообщения

Недавно искал способ, как обрезать лишний белый фон у изображений. После экспериментов сделал так: В контроллере загрузчика 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 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.