Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Image resize prima di inserire l'immagine in MySql

    Ho creato uno script che inserisce delleimmagini in un database, adesso vorrei controllare la risoluzione dell'immagine prima di inserirla, qualcuno può aiutarmi?

    Questo è il codice

    codice:
    $dbcnx = mysql_connect('localhost','username','password');
    
    mysql_select_db('leveldes_level');
    
    
    
    $gal = $_POST['galleria'];
    
    $path = $_FILES['userfile']['tmp_name'];
    
    $file = $_FILES['userfile']['name'];
    
    $filetyp = substr($file, -3);
    if ($filetyp == 'gif' OR $filetyp == 'jpg') {
    $handle = fopen($path,'r');
    $file_content = fread($handle,filesize($path));
    $encoded = chunk_split(base64_encode($file_content)); 
    $sql = "INSERT INTO images2 SET sixfourdata='$encoded', galleria='$gal'"; 
    mysql_query($sql);
    fclose($handle);
    echo("File caricato
    ");
    echo("<a href=\"view.php?gal=$gal\">Visualizza nella galleria $gal</a>");
    }else{
    echo("tipo di file errato");
    }
    mysql_close($dbcnx);
    ho guardato il manuale di copyimageresized ma non ho capito un gran che!

    Help

    Alberto :-)

    www.leveldesign.it

  2. #2
    Non serve ridimensionarla al momento del caricamento...
    Puoi ridimensionarla al momento della visualizzazione..

    Tieni questo script fatto da me, è una classe, ma devi adattarla, perchè io le immagini non le carico fisicamente nel db, ma mi tengo solo il nome..

    codice:
    class thumbnail {
    
     var $file;
     var $bgColorSr;
     var $imD;
    
     function thumbnail( $file, $newWidth, $newHeight, $bgColor = "#FFFFFF", $fixed = false ) {
    
      $this->file = $file;
    
      if ($this->file) {
    
       $sorgente = $_SERVER['DOCUMENT_ROOT'].$this->file;
       $imS = @ImageCreateFromJPEG($sorgente);
       $sX = ImagesX($imS); $sY = ImagesY($imS);
    
       if (($sX > $newWidth) || ($sY > $newHeight)) {
    
        if ($sX > $sY ) {
         $cfg[height] = $newHeight;
         $cfg[width] = round($cfg[height] * $sX / $sY);
         $psX = 0;
         $psY = 0;
        } else {
         $cfg[width] = $newWidth;
         $cfg[height] = round($cfg[width] * $sY / $sX);
         $psX = 0;
         $psY = 0;
        }
    
       } else {
    
         $cfg[height] = $sY;
         $cfg[width] = $sX;
         $psX = 0;
         $psY = 0;
    
       }
    
       $realWidth = $cfg[width];
       $realHeight = $cfg[height];
    
       if ($fixed) {
    
        if ($cfg[height]>$newHeight) {
         $cfg[width] = round($cfg[width] * $newHeight / $cfg[height]);
         $cfg[height] = $newHeight;
         $psX = 0;
         $psY = 0;
        }
    
        if ($cfg[width]>$newWidth) {
         $cfg[height] = round($cfg[height] * $newWidth / $cfg[width]);
         $cfg[width] = $newWidth;
         $psY = 0;
         $psX = 0;
        }
    
        $realWidth = $cfg[width];
        $realHeight = $cfg[height];
    
       }
    
       if ($this->gd_version()>=2) $this->imD = @ImageCreateTrueColor($realWidth, $realHeight);
       else $this->imD = @ImageCreate($realWidth, $realHeight);
    
       @ImageCopyResized($this->imD, $imS, $psX, $psY, 0, 0, $cfg[width], $cfg[height], $sX, $sY);
    
       return true;
    
      } else return false;
    
     }
    
     /*
     Analisi Versione Librerie GD
     */
    
     function gd_version() {
    
      static $gd_version_number = null;
      if ($gd_version_number === null) {
       ob_start();
       phpinfo(8);
       $module_info = ob_get_contents();
       ob_end_clean();
       if (preg_match("/\bgd\s+version\b[^\d\n\r]+?([\d\.]+)/i",$module_info,$matches)) $gd_version_number = $matches[1];
       else $gd_version_number = 0;
      }
      return $gd_version_number;
    
     }
    
     /*
     Funzione per Conversione da Esadecimale a Decimale
     */
    
     function HexToDec( $Hex ) {
    
      if (strlen($Hex)==7) {
       $Hex = strtoupper(str_replace("#","",$Hex));
       $this->bgColorSr = ImageColorAllocate($this->imD, hexdec(substr($Hex,0,2)), hexdec(substr($Hex,2,2)), hexdec(substr($Hex,4,2)));
       return true;
      } else return false;
    
     }
    
    }
    
    $Thumb = new thumbnail( $_GET[f], 640, 480, "#FFFFFF", true );
    
    header("Expires: ".gmdate("D, d M Y H:i:s")."GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    header("Content-type: image/jpeg");
    @ImageJPEG($Thumb->imD, "", 80);
    @ImageDestroy($Thumb->imD);
    questo codice fa il ridimensionamento intelligente, inquanto mantiene le propozioni dell'immagini al momento del ridimensionamento, ed applica uno sfondo ai margini, nel caso l'immagine non si adattasse alla pienezza della dimensione.

    Questo script è solo per JPG, inquanto la maggior parte dei web server ha solo quelle come gestore di immagini.

    Con $_GET[f] passo il percorso completto relativo dell'immagine, poi indico le dimensioni X, Y, lo Sfondo da applicare e se la voglio in propozione!

    Provala poi facci sapere!
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  3. #3
    Io utilizzo questo script per visualizzare le immagini:

    codice:
    $dbcnx = mysql_connect('localhost','user','password');
    
    mysql_select_db('leveldes_level');
    
    $img = $_REQUEST["img"];
    
        $result = mysql_query("SELECT * FROM images2 WHERE imgid=$img"); 
        if (!$result) { 
          echo("Errore nella query: " . mysql_error() . ""); 
          exit(); 
        } 
        while ($row = mysql_fetch_array($result) ) { 
    	$imgid = $row["imgid"];
    	$encodeddata = $row["sixfourdata"]; 
    	}
    mysql_close($dbcnx);
    echo base64_decode($encodeddata);
    forse potrei mettere il tuo script nella parte prima della decodifica, non ho mai lavorato con le classi, mi potresti dare una mano?

    Grazie mille
    Alberto :-)

    www.leveldesign.it

  4. #4
    altrimenti posso salvare le immagini in una cartella

    però volevo provare a utilizzare il db

    Alberto :-)

    www.leveldesign.it

  5. #5
    Originariamente inviato da albebonv
    altrimenti posso salvare le immagini in una cartella

    però volevo provare a utilizzare il db

    Ti conviene più gestire le immagini fisicamente e poi salavare nel db solo il path, il tutto è più rapido, meno laborioso e poi le immagini le puoi utilizzare ovunque ed in qualsiasi condizione.. nonchè fare in modo che le immagini ti aiutano ad essere indicizzato dai motori di ricerca!
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  6. #6
    era solamente per imparare qualcosa di nuovo!

    mi sa che mi conviene lavorare prima con immagini normali e più avanti ritenterò con i database
    Alberto :-)

    www.leveldesign.it

  7. #7
    L'ultima domanda:

    Mi conviene caricare le immagini a piena risoluzione e poi visualizzarle nelle risoluzioni desiderate oppure creare i file con le varie risoluzioni e i thumbnails?
    Alberto :-)

    www.leveldesign.it

  8. #8
    Originariamente inviato da albebonv
    L'ultima domanda:

    Mi conviene caricare le immagini a piena risoluzione e poi visualizzarle nelle risoluzioni desiderate oppure creare i file con le varie risoluzioni e i thumbnails?
    Io uso fare i file thumbnail, così evito di far fare troppo lavoro al web server, ma nulla vieta di farli di volta in volta.. infatti molti siti fanno così, ma ripeto.. per questione di velocità preferisco farli prima!
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  9. #9
    grazie
    Alberto :-)

    www.leveldesign.it

  10. #10
    Originariamente inviato da albebonv
    grazie
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

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.