• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Модуль Уменьшенные Изображения с фиксированой шириной и длиной

Статус
В этой теме нельзя размещать новые ответы.
X

=x2=

Прохожие
Ребят, подскажите, как выровнять уменьшенные изображения (превью) по ширине и длине?
Например все превьюшки 150на150.
Тоесть не пропорциональное уменьшение как стоит, а обрезка краёв.
Ну или что то в этом роде.
Спасибо.
 
НУ вообщето меняется в настройках. А вот если ты хочешь, что бы оно без пропорций уменьшалось, прям 150х150, то это надо код переписыать
 
imagemagick это умеет делать на сервере, одной командой, но это нужно код править. Если будешь править, могу подсказать команду для imagemagick
 
Открываешь файл engine/inc/makethumb.php
Находишь там


PHP:
function size_auto($size = 100) { 
    global $gd_version;

    if ($this->img["lebar"] < $size AND $this->img["tinggi"] < $size ) {
        $this->img["lebar_thumb"]  = $this->img["lebar"];
        $this->img["tinggi_thumb"] = $this->img["tinggi"];
     return 0;
    } elseif ($this->img["lebar"] >= $this->img["tinggi"]) {
        $this->img["lebar_thumb"] = $size;
        $this->img["tinggi_thumb"] = ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"];
    } else {
        $this->img["tinggi_thumb"] = $size;
        $this->img["lebar_thumb"] = ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"];
    }

if($gd_version==1) {
    $this->img["des"] = imagecreate($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
    @imagecopyresized ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
  } elseif($gd_version==2) {
     $this->img["des"] = imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
    @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
  }

    $this->img["src"] = $this->img["des"];
    return 1;
}


заменяешь на:

PHP:
function size_auto($size = 100) { 
    
    global $gd_version;
    
  // lebar - x
  // tinngi - y

    if ($this -> img["lebar"] < $size AND $this->img["tinggi"] < $size ) {
        $this -> img["lebar_thumb"]  = $this->img["lebar"];
        $this -> img["tinggi_thumb"] = $this->img["tinggi"];
        return 0;
        
    } else {
        $this -> img["tinggi_thumb"] = $size;
        $this -> img["lebar_thumb"]  = $size;
    }

    
  // Если библиотека версии 1 используем более простое обрезание
    if($gd_version == 1) {
        
      //создаём новое изображение
         $this->img["des"] = imagecreate($this->img["lebar_thumb"], $this->img["tinggi_thumb"]);
         
      // Вырезаем участок рисунка
         if ($this->img["lebar_thumb"] > $this->img["tinggi_thumb"]) 
             @imagecopyresized($this->img["des"], $this->img["src"], 0, 0,
                          round((max($this->img["lebar"], $this->img["tinggi"]) - min($this->img["lebar"], $this->img["tinggi"]))/2),
                          0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], 
                          min($this->img["lebar"], $this->img["tinggi"]), min($this->img["lebar"],$this->img["tinggi"])); 

         if ($this->img["lebar_thumb"] < $this->img["tinggi_thumb"]) 
             @imagecopyresized($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"],
                          min($this->img["lebar"], $this->img["tinggi"]), min($this->img["lebar"], $this->img["tinggi"])); 
                          
         if ($this->img["lebar_thumb"] == $this->img["tinggi_thumb"]) 
             @imagecopyresized($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
          
    
  // Если библиотека версии 2 используем более сложное обрезание
    } elseif($gd_version == 2) {
        
          //создаём новое изображение
            $this->img["des"] = imagecreatetruecolor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
            
       // Вырезаем участок рисунка
         if ($this->img["lebar_thumb"] > $this->img["tinggi_thumb"]) 
             @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0,
                          round((max($this->img["lebar"], $this->img["tinggi"]) - min($this->img["lebar"], $this->img["tinggi"]))/2),
                          0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], 
                          min($this->img["lebar"], $this->img["tinggi"]), min($this->img["lebar"],$this->img["tinggi"])); 

         if ($this->img["lebar_thumb"] < $this->img["tinggi_thumb"]) 
             @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"],
                          min($this->img["lebar"], $this->img["tinggi"]), min($this->img["lebar"], $this->img["tinggi"])); 
                          
         if ($this->img["lebar_thumb"] == $this->img["tinggi_thumb"]) 
             @imagecopyresampled ($this->img["des"], $this->img["src"], 0, 0, 0, 0, $this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);
    }

    $this->img["src"] = $this->img["des"];
    return 1;
}

Теперь все уменьшенные копиии будут получаться квадратными.

потом в админке поставишь уменьшать фотки до каких пикселей 150 как тебе нужно. (настройки системы-настройка работы с изображениями-Размер уменьшенной копии загруженного изображения:
Максимальный размер в пикселях любой из сторон загружаемой картинки при превышении которого будет создаваться уменьшенная копия)

всё :)
 
хм.. а если кратинка шыре %)... то чтоже?.. он будет ее бочинить %)?
 
поидеи он (makethumb.php) теперь должен создавать квадрат из любой картинки
 
а под 7.5 версию помогите доработать. а то там код другой :(
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху