Квадратные миниатюры Квадратные миниатюры
 

News:

CPG Release 1.6.27
change DB IP storage fields to accommodate IPv6 addresses
remove use of E_STRICT (PHP 8.4 deprecated)
update README to reflect new website
align code with new .com CPG website
correct deprecation in captcha

Main Menu

Квадратные миниатюры

Started by HORNETZ, February 18, 2008, 12:40:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

HORNETZ

как сделать кважратные миниатюры на cpg 1.4.16?

Alex Revo

Миниатуры будут автоматически созданы квадратными, если загружать исключительно квадратные фото.

HORNETZ

ну это понятно а хотелось бы чтобы создовались квадратные даже если фотка не квадратная

Alex Revo

Для этого нужно править код самой галереи.

Orhidea

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

Makc666

#5
Quote from: HORNETZ on February 18, 2008, 12:40:59 AM
как сделать кважратные миниатюры на cpg 1.4.16?
Если использовать ImageMagic в качестве "Конфиг -> Метод изменения размеров изображений", то можно попробовать почитать в его документации, может ли он автоматически создавать квадратные изображения из командной строки.
"Конфиг -> Параметры командной строки для ImageMagick" 

dim568

#6
нус попытаюсь изложить как делал я)))

1. Открываем
picmgmt.inc.php

2. Ищем отрывок
   if ($thumb_use == 'ht') {
       $ratio = $srcHeight / $new_size;
   } elseif ($thumb_use == 'wd') {
       $ratio = $srcWidth / $new_size;
   } else {
       $ratio = max($srcWidth, $srcHeight) / $new_size;
   }
   $ratio = max($ratio, 1.0);


3. После него удаляем строки
   $destWidth = (int)($srcWidth / $ratio);
   $destHeight = (int)($srcHeight / $ratio);


4. Заместо них пишем
   if ($new_size<400)
   {
   $destWidth = (int)$new_size;
   $destHeight = (int)$new_size;
if($srcWidth/$srcHeight>=1)
{
$startx=($srcWidth-$srcHeight)/2;
$starty=0;
$myvalue=$srcHeight;
}else{
$startx=0;
$starty=($srcHeight-$srcWidth)/2;
$myvalue=$srcWidth;
}
   }else{
   $destWidth = (int)($srcWidth / $ratio);
   $destHeight = (int)($srcHeight / $ratio);
   }


5. Ниже ищем
case "gd2" :

6. Чуток ниже заменяем
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);

на
if (isset($startx)) imagecopyresampled($dst_img, $src_img, 0, 0, $startx, $starty, $destWidth, $destHeight, $myvalue, $myvalue);
else imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);


7. сохраняем и галлерея будет автоматически делать квадратными изображения которые должны быть меньше 400 пикселей, фокус будет брать по центру исходного изображения, но это еще не все)))


для правильного отображения наших миниатюр

1. Открываем
functions.inc.php

2. Ищем
function compute_img_size($width, $height, $max)
{
        global $CONFIG;
       $thumb_use=$CONFIG['thumb_use'];
       if($thumb_use=='ht') {
         $ratio = $height / $max;
       } elseif($thumb_use=='wd') {
         $ratio = $width / $max;
       } else {
         $ratio = max($width, $height) / $max;
       }
       if ($ratio > 1.0) {
               $image_size['reduced'] = true;
       }
       $ratio = max($ratio, 1.0);


3. Ниже заменяем
       $image_size['width'] =  (int) ($width / $ratio);
       $image_size['height'] = (int) ($height / $ratio);


на
if($max<400)
       {
       $image_size['width'] =  $max;
       $image_size['height'] = $max;
       }else{
       $image_size['width'] =  (int) ($width / $ratio);
       $image_size['height'] = (int) ($height / $ratio);
       }


4. сохраняем и радуемся

понимаю что описал не есть как, поэтому прикладываю мои файлы.