Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-10-2009 22:17:41

yveson33
Membre
Lieu: bordeaux
Date d'inscription: 13-05-2008
Messages: 111
Site web

zf 1.9 galere sur le redimension image .

Bonjour à tous une nouvelle je demande de l'aide  sur le forum car je galère depuis un moment déjà sur le redimension d'une image uploadée. voila la partie du code qui marche me permet :
1 - d'uploadé normalement l'image  et egalement la renommé seul hic j'arrive pas à redimension l'image apres tout ce temps de recherche si une personne peut me guider ca serait volontier .
voici mon code pour l'upload et la tentation de redim dans une action de mon controlleur.

Code:

 
  $this->_uploadAdapter   = new Zend_File_Transfer_Adapter_Http();
       $this->_uploadAdapter->setDestination('../public/medias/');

                    $id                 =   $this->_annonce->lastInsertId();
                    $this->_fileInfo    =   $this->_uploadAdapter->getFileInfo();
               foreach ( $this->_fileInfo  as $keys=>$file) {
                        
                        $hash               =   My_Gallery::getHashFile();
                        $fileExtension      =   self::_getFileExtension($file['name']);

                  
                    $fileNameArray           =   $this->_form->photo->getFileName();
                    $fileName                =   $fileNameArray[$keys];

                        $isDirExist = My_Gallery::isDirExist('../public/medias/'.$id);
                               
                        if ($isDirExist) {
                            $uploadPath = '../public/medias/'.$id.'/';
                            $this->_uploadAdapter->addFilter('Rename',array('target'=>$uploadPath.$id.$hash.".".$fileExtension,'overwrite'=>true));
                        } else {
                            $uploadPath = My_Gallery::createStorageFile('../public/medias/', $id);
                            $this->_uploadAdapter->addFilter('Rename',array('target'=>$uploadPath.$id.$hash.".".$fileExtension,'overwrite'=>true));
                        }  
                     
                        //REDIMMENSION IMAGE
                       //   $resize    =   My_Gallery::resizeImage($fileName,$fileExtension , '600', '600');
                      //    var_dump($resize);
                       //   $this->_uploadAdapter->addFilter('Rename',array('target'=>$uploadPath.$id.$hash."_600*600".".".$fileExtension,'overwrite'=>true));

                        if ($this->_uploadAdapter->receive($file['name'])) {
        
                          $resize    =   My_Gallery::resizeImage($fileName,$fileExtension , '150', '150');


                        }

                    }

et voici la methode resizeimage de ma classe gallery

Code:

 
    public static function resizeImage($source,$extension, $weightMax, $heigthMax) {


        //En fonction de l'extension image
    if($extension =="jpg" || $extension =="jpeg" || $extension =="jfif")
        $imagesrc = imagecreatefromjpeg($source);
    elseif(strtolower($extension) == "png")
        $imagesrc = imagecreatefrompng($source);
    elseif(strtolower($extension) == "gif")
        $imagesrc = imagecreatefromgif($source);


        // Calcul des nouvelles dimensions
        list($largeur, $hauteur) = getimagesize($source); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
   
        if (!$weightMax) $weightMax = 410;
    if (!$heigthMax) $heigthMax = 300;

        if ($largeur > $weightMax)
    {
        $largeur = $weightMax;
        $hauteur = round($hauteur/$largeur*$weightMax);
    }
    if ($hauteur > $heigthMax)
    {
        $hauteur = $heigthMax;
        $largeur = round($largeur/$hauteur*$heigthMax);
    }

        $imagedest = imagecreatetruecolor($largeur,$hauteur) or die ("Impossible de crée un flux d'image GD");

         imagecopyresampled($imagedest, $imagesrc, 0, 0, 0, 0,$weightMax ,$heigthMax, $largeur, $hauteur);

       switch ($extension) {
         case 'jpg':
         case 'jpeg':
           imagejpeg ($imagedest, $source ,100);
           break;
         case 'png':
           imagepng ($imagedest, $source,0);
           break;
         case 'gif':
           imagegif ($imagedest);
           break;
        }
       // imagedestroy($imagedest);
       return $imagedest;

    }

Voila c'est un peu long. mais la je galere un peu trop et je trouve pas le probleme merci d'avance à tous

Dernière modification par yveson33 (23-10-2009 23:21:59)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages