Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema resize immagini al volo

    Salve a tutti,
    scrivo qui perchè ho un problema con la mia gallery.

    Il problema potete notarlo qui : http://www.alessiocorse.it/foto.php

    Ho una serie di immagini che stampo resizate dopo uno scandir sulla mia cartella delle immagini.
    Alcune compaiono altre no. Tuttò ciò in maniera totalmente random e solamente online, in locale funziona tutto correttamente.

    Qualche idea?

    Allego il codice della pagina che fa il resize al volo delle immagini.
    L'ho trovato online e ne ho modificato alcune parti.

    Codice PHP:
    <?php
       
        
    //parametri
        
    $no_img_src "images/noimage.gif"
        
        if (
    $_GET['file']!="") {
            
    $file $_GET['file'];
        } else {
            
    $file $no_img_src;
        }
        
          
    $resize $_GET['w'];    
          
    $altez  $_GET['h'];
          
          
    $quality 85;
          if (isset(
    $_GET["q"])) {
            
    $quality $_GET["q"]; 
        }
          
        
    $cosa getimagesize($file);
          
          
    //casi
          
    if ($resize!="" && $altez=="") {
              
    //se c'è la larghezza e non l'altezza
              
    if ($resize>$cosa[0]) {
                  
    $width $cosa[0];
                  
    $alte $cosa[1];
              } else {
                  
    $width $resize;
                  
    $alte = (($resize*$cosa[1])/$cosa[0]);
              }
          } elseif (
    $resize=="" && $altez!="") {
              
    //se c'è l'altezza e non la larghezza
              
    if ($altez>$cosa[1]) {
                  
    $width $cosa[0];
                  
    $alte $cosa[1];
              } else {
                  
    $width = (($altez*$cosa[0])/$cosa[1]);
                  
    $alte $altez;
              }
          } elseif (
    $resize!="" && $altez!="") {
              
    //se ci sono entrambe
              
    if ($resize>$cosa[0]) {
                  
    $width $cosa[0];
                  if (
    $altez>$cosa[1]) {
                      
    $alte $cosa[1];
                } else {
                    
    $alte $altez;
                    
    $width = (($altez*$cosa[0])/$cosa[1]);
                }
              } else {
                  
    $width $resize;
                  if (
    $altez>$cosa[1]) {
                      
    $alte $cosa[1];
                } else {
                    
    $alte $altez;
                    
    $width = (($altez*$cosa[0])/$cosa[1]);
                }
              }
          } elseif (
    $resize=="" && $altez=="") {
              
    //se non ci sono entrambe
              
    $width $cosa[0];
              
    $alte $cosa[1];
          }
            
        
    /*
        $width = ($resize < $cosa[0]) ? $resize : $cosa[0];
        $alte = (!$altez) ? ceil(($cosa[1] * $width)/$cosa[0])+1 : $altez;
        */

        //ricreo l'img
        
    $min  imagecreatetruecolor($width$alte);

         switch(
    $cosa['mime']){
           case 
    'image/png':
             
    header('Content-Type: image/png');
             
    $im imagecreatefrompng($file);
             
    imagealphablending($minfalse);
             
    imagecopyresized($min$im0000$width$alteimageSx($im), imageSy($im));
             
    imagesavealpha($mintrue);
             
    imagepng($min,'',8,PNG_ALL_FILTERS);
           break;
        
           case 
    'image/gif':
             
    header('Content-Type: image/png');
             
    $im imagecreatefromgif($file);
             
    imagealphablending($minfalse);
             
    $colorTransparent imagecolorallocatealpha($min000127);
             
    imagefill($min00$colorTransparent);
             
    imagecopyresized($min$im0000$width$alteimageSx($im), imageSy($im));
             
    imagesavealpha($mintrue);
             
    imagepng($min,'',8,PNG_ALL_FILTERS);
           break;
        
           case 
    'image/jpeg':
           case 
    'image/jpg':
             
    header('Content-Type: image/jpeg');
             
    $im imagecreatefromjpeg($file);
             
    imagecopyresized($min$im0000$width$alteimageSx($im), imageSy($im));
             
    imagejpeg($min,'',$quality);      
           break;    
         }
          
    imagedestroy($min);
    ?>
    ...il passato lo rimpiange chi non ha futuro...
    Lega LFA | Alessio Corse | a2area

  2. #2
    Per prima cosa, è una follia fare il resize a runtime in quel modo.

    Salva in una cartella le immagini ridimensionate ed utilizza quelle invece di sovraccaricare il web server con tutto quel lavoro.

  3. #3
    Cioè?
    Dovrei ridimensionare le immagini personalmente e creare le Thumb?

    ...non scherziamo...
    ...il passato lo rimpiange chi non ha futuro...
    Lega LFA | Alessio Corse | a2area

  4. #4
    Lo puoi tranquillamente far fare al PHP, magari in fase di upload.

    Quello che NON puoi fare, è richiedere al web server di eseguire 35 ridimensionamenti ogni volta che un utente richiede quella pagina.

    Stai pur certo che appena se ne accorgono i gestori del server, ti bloccano l'account per utilizzo scriteriato di risorse CPU.

    P.S.
    Se provi ad eseguire 5 refresh consecutivi della home del sito (o di qualsiasi altra pagina), otterrai un messaggio di errore "Rate Limit Exceeded".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.