Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   gd размер картинки (http://forum.oszone.net/showthread.php?t=108835)

bruder 10-06-2008 01:20 822684

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

resizejpeg("", "1.jpg", 600, 600, 300, 150);


PHP код:

function resizejpeg($dir$img$max_w$max_h$th_w$th_h)
{
    
// get original images width and height
    
list($or_w$or_h$or_t) = getimagesize($dir.$img);
    
// make sure image is a jpeg
    
if ($or_t == 2) {   
        
// obtain the image's ratio
        
$ratio = ($or_h $or_w);
        
// original image
        
$or_image imagecreatefromjpeg($dir.$img);
        
// resize image
        
if ($or_w $max_w || $or_h $max_h) {
            
// first resize by width (less than $max_w)
            
if ($or_w $max_w) {
                
$rs_w $max_w;
                
$rs_h $ratio $max_h;
            } else {
                
$rs_w $or_w;
                
$rs_h $or_h;
            }
            
// then resize by height (less than $max_h)
            
if ($rs_h $max_h) {
                
$rs_w $max_w $ratio;
                
$rs_h $max_h;
            }
            
// copy old image to new image
            
$rs_image imagecreatetruecolor($rs_w$rs_h);
            
imagecopyresampled($rs_image$or_image0000$rs_w$rs_h$or_w$or_h);
        } else {
            
$rs_w $or_w;
            
$rs_h $or_h;
            
$rs_image $or_image;
        }   
        
// generate resized image
        
imagejpeg($rs_image$dir.'gr_'.$img100);
        
$th_image imagecreatetruecolor($th_w$th_h);
        
// cut out a rectangle from the resized image and store in thumbnail
        
$new_w = (($rs_w 4));
        
$new_h = (($rs_h 4));
        
imagecopyresampled($th_image$rs_image0000,$new_w$new_h$rs_w$rs_h);

        
// generate thumbnail
        
imagejpeg($th_image$dir.'thumb_'.$img"30");

        return 
true;
    }
   
    
// Image type was not jpeg!
    
else {
        return 
false;
    }
}
?> 

дополню: imagejpeg($th_image, $dir.'thumb_'.$img, "30");
30 это качество. При таком качестве IfranViewer ужимает картику в 10 раз!

Sham 10-06-2008 01:43 822694

версия GD какая?

bruder 10-06-2008 01:51 822695

Sham спасибо за отклик, я просто перепутал вызовы функций. Я качество на thumbnails ухудшал а надо было на большом image. Отбой, зря потревожил только. Вот что значит по ночам писать. :)

vadimiron 10-06-2008 10:27 822793

bruder,
Если будете работать много с изображениями советую в сторону imagemagick-а покапать. Он намного больше всего может, чем gd.

Busla 10-06-2008 10:40 822808

Цитата:

Цитата bruder
30 это качество. При таком качестве IfranViewer ужимает картику в 10 раз »

каждая программа считает качество jpeg в своих попугаях т.к. в стандарте этот вопрос не освещается.


Время: 14:15.

Время: 14:15.
© OSzone.net 2001-