salve, lo script di seguito crea un'anteprima (thumb) dell'immagine basandosi su dei valori maxheight e maxwidth.
esempio:150x150px
lo script ridimensiona a 150px mantenendo l'aspect ratio (così una dimensione è 150px e l'altra è minore)
penso di aver individuato la funzione che crea effettivamente l'immagine

codice:
    function resizeImageGD2($src_file, $dest_file, $destWidth,$destHeight){        $imginfo = getimagesize($src_file);
        if ($imginfo == null) {
            $this->raiseError(CBTxt::T('Error: Unable to execute getimagesize function'));
            return false;
        }
        // GD can only handle JPG & PNG images
        if ($imginfo[2] != 2 && $imginfo[2] != 3 && ($imginfo[2] == 1 && !function_exists( 'imagecreatefromgif' ))){
            $this->raiseError(CBTxt::T('Error: GD2 Unable to create image from imagetype function'));
            return false;
        }
        if ($imginfo[2] == 2)
            $src_img = imagecreatefromjpeg($src_file);
        elseif ($imginfo[2] == 1)
            $src_img = imagecreatefromgif($src_file);
        else
            $src_img = imagecreatefrompng($src_file);
        if (!$src_img) {
            $this->raiseError(CBTxt::T('Error: GD2 Unable to create image from imagetype function'));
            return false;
        }
        $dst_img = imagecreatetruecolor($destWidth, $destHeight);
        $background_color    =    imagecolorallocate( $dst_img, 255, 255, 255 );        // white background for images with transparency
        ImageFilledRectangle($dst_img, 0, 0, $destWidth, $destHeight, $background_color);
        imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, $destHeight, $imginfo[0], $imginfo[1]);
        if ($imginfo[2] == 2) {
            imagejpeg($dst_img, $dest_file, $this->_JPEGquality);
        } elseif ($imginfo[2] == 1) {
            if(function_exists('imagegif')) {
                imagegif($dst_img, $dest_file);
            } else {
                $this->raiseError(CBTxt::T('Error: GIF Uploads are not supported by this version of GD'));
                return false;
            }
        } else {
            imagepng($dst_img, $dest_file);
        }
        imagedestroy($src_img);
        imagedestroy($dst_img);
        return true;
    }

questo è lo script completo
http://forge.joomlapolis.com/attachm...lbox.class.php
appartiene a Community Builder, un componente di joomla.

quello che vorrei è:
avere una thumb che abbia dimensioni fisse 150x150 (non variabili 150xX o Xx150) croppando l'immagine.
in altre parole, per capirci, come gli avatar di facebook.
so che è una richiesta impegnativa, ma non così tanto per chi sviluppa ed ha a che fare spesso con l'image processing.