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

Обрезать белый фон


Recommended Posts

Здравствуйте. Нужно сделать так, чтобы перед resize изображения, обрезался белый фон у изображения до контента. Т.е. не удалялся белый фон, а именно обрезался фон до самой картинки. Есть у кого модифицированный resize? Или подскажите, как это можно сделать? Аналог тримминг в ФШ.

Если есть модуль, то бесплатный.

Змінено користувачем Muvka
Надіслати
Поділитися на інших сайтах


On 11/28/2018 at 4:19 PM, Muvka said:

Здравствуйте. Нужно сделать так, чтобы перед resize изображения, обрезался белый фон у изображения до контента. Т.е. не удалялся белый фон, а именно обрезался фон до самой картинки. Есть у кого модифицированный resize? Или подскажите, как это можно сделать? Аналог тримминг в ФШ.

Если есть модуль, то бесплатный.

 

в library/image.php

 public function trim(){
        if($this->image){
          $im = imagecropauto($this->image,IMG_CROP_DEFAULT);
          if($im!==false){
            $this->image = $im;
            $this->width = imagesx($this->image);
            $this->height = imagesy($this->image);
          }
        }
        return $this;
      } 

в catalog/model/tool/image.php в функции resize

            if ($width_orig != $width || $height_orig != $height) {
                $image = new Image(DIR_IMAGE . $image_old);
                $image->trim();
                $image->resize($width, $height);
                $image->save(DIR_IMAGE . $image_new);
            } else {
                copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new);
            }

добавить вызов trim перед вызовом resize

ну или модификатор

autocrop.ocmod.zip

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


  • 2 months later...
В 29.11.2018 в 14:14, lexxkrt сказал:

 

в library/image.php


 public function trim(){
        if($this->image){
          $im = imagecropauto($this->image,IMG_CROP_DEFAULT);
          if($im!==false){
            $this->image = $im;
            $this->width = imagesx($this->image);
            $this->height = imagesy($this->image);
          }
        }
        return $this;
      } 

в catalog/model/tool/image.php в функции resize


            if ($width_orig != $width || $height_orig != $height) {
                $image = new Image(DIR_IMAGE . $image_old);
                $image->trim();
                $image->resize($width, $height);
                $image->save(DIR_IMAGE . $image_new);
            } else {
                copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new);
            }

добавить вызов trim перед вызовом resize

ну или модификатор

autocrop.ocmod.zip

Не помогло, ничего не происходит, кеши все чистил

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


  • 2 weeks later...
On 2/15/2019 at 3:43 PM, Fimo said:

Не помогло, ничего не происходит, кеши все чистил

это работает только на php 5.6+

на меньшей версии ищи реализацию функции трим в интернете через код.

в php 7 на локальной машине работает, да и на хостинге попробовал тоже работает

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


7 часов назад, lexxkrt сказал:

это работает только на php 5.6+

на меньшей версии ищи реализацию функции трим в интернете через код.

в php 7 на локальной машине работает, да и на хостинге попробовал тоже работает

пробовал на php 5.6 и 7, не заработал (

может конечно что то не правильно делаю, но немного позже еще поковыряюсь и отпишусь по итогам

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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