Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Resize картинок 
:(
    Опции темы
Гость_Nicka
  Дата 19.10.2004, 02:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня проблема при Resize -е картинок, у меня есть функция
Дело в том что она ресайзит некоторые картинки нормально(то есть уменьшает пропорционально первоначальному размеру), а некоторые нет,
просто срезает(отрезает верх).

Вот код функции
Код
function image_small_png($userfile,$userfile_name,$dir) {
$src_img = imagecreatefromjpeg("../$dir/".$userfile_name);
$src_width = imagesx($src_img); // width original image
   $src_height = imagesy($src_img); // height original image
   $dest_width = 120;
   $dest_height = 100;
$ar = $dest_width / $dest_height; // aspect ratio
$divX = $src_width / $dest_width; // factor to calculate the scaled down height
 
if($src_height / $divX <= $dest_height){ //if the scaled down height is smaller than the thumbnail max height
 $y = 0; // don`t center crop (there is nothing to center)
 $dest_height = $src_height / $divX; // keep the original scaled down height
 $cropheight = $src_height; // set the cropheight to the original image height (there is nothing to be cropped)
} else {
 $cropheight = $src_width / $ar; //maintain the proper  thumbnail aspect ratio
 $y = $src_height / $divX; //calculate the scaled down  height
 $y = ($y - $dest_height) * $divX / 2; //substract the  thumbnail height from the scaled down original height than divide by 2 (for centering the crop to the proper height)
}

$dest_img = imagecreatetruecolor($dest_width,$dest_height);
imagecopyresampled($dest_img, $src_img, 0, 0, 0 ,$y, $dest_width, $dest_height, $src_width, $cropheight);

imagejpeg($dest_img, "../$dir/smalls/".$userfile_name);
imagedestroy($dest_img);

}

Еще хотелось бы показать вам картинки которые он нормально и ненормально обрабатывает
но что то не найду тут аплода....
  Вверх
Гость_Nicka
Дата 19.10.2004, 02:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











можно посмотреть результы на странице http://racom113.valuehost.ru
там как раз есть 2 резултата ресайзинга - хороший (слева) и плохой (справа рация)
  Вверх
izOne
Дата 20.10.2004, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: нет
Всего: 4



Разве можно из
+--+
| |
| |
| |
+--+
сделать
+-----------+
| |
+-----------+
без потери пропорций?

Тут надо либо подгонять к заданной высоте, либо к заданной ширине. Корректный результат наблюдается, видимо, для тех изображений, для которых: src_w/src_h = dest_w/dest_h. В противном случае что-то либо по высоте, либо по ширине обрезается.
--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
Guest
Дата 20.10.2004, 17:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











izOne
понятно, но там в алгоритме если заметил конечная высота позже меняеться исходя из каких то непонятных мне соображений
я просто не понимаю, что там к чему, мов любом случае не работает, так чтож делать, может кто нибудь пдскажет код полегче?

  Вверх
arial
Дата 20.10.2004, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: нет
Всего: 7





--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
izOne
Дата 21.10.2004, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: нет
Всего: 4



Я использую следующий код:
Код
function admin_private_images_thumbnail($file){
   $img_size = GetImageSize($file);
   $img_size_width  = $img_size[0];
   $img_size_height = $img_size[1];
   if($img_size[0]<=6000){
       $img = imagecreatefromjpeg($file);
       if($img){
           if(($ratio = $img_size_width/$img_size_height) >= 1){ // Ширина больше чем высота
               $img_newsize_width  = 150;
               $img_newsize_height = floor($img_newsize_width/$ratio);
           }else{ // Ширина меньше чем высота
               $img_newsize_height = 100;
               $img_newsize_width  = floor($img_newsize_height*$ratio);
           }
           $img_out    = imagecreate($img_newsize_width, $img_newsize_height);
           $pathinfo   = pathinfo($file);
           ImageCopyResized($img_out, $img, 0, 0, 0, 0, $img_newsize_width, $img_newsize_height, $img_size_width, $img_size_height);
           ImageJpeg($img_out, $pathinfo['dirname']."/".$pathinfo['basename'].".tmb.".$pathinfo['extension']);
           return true;
       }
   }else{
       return false;
   }
}

--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
anka
Дата 1.12.2006, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 18.9.2006
Где: Azerbaijan

Репутация: нет
Всего: нет



Исползуы ету 


Код


<?
function resize($inputFilename)
{
    $imagedata = getimagesize($inputFilename);
    $w = $imagedata[0];
    $h = $imagedata[1];

        $new_w = 50;
        $new_h = $h*$new_w/$w;

    $im2 = ImageCreateTrueColor($new_w, $new_h);
    $image = ImageCreateFromJpeg($inputFilename);
    imagecopyResampled ($im2, $image, 0, 0, 0, 0, $new_w, $new_h, $imagedata[0], $imagedata[1]);
    header("Content-type: image/jpeg") ;
    imagejpeg($im2,'',20);
}
$img=$_GET["img"];
resize($img);
?>


PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.