Jump to content
Sign in to follow this  
Muvka

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Я пытался, у меня не получилось нормально(

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

С другой стороны, работает - и ок :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.