Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

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

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

Edited by Muvka
Link to post
Share on other sites

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
Link to post
Share on other sites

  • 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

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

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.