Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Script resize immagini

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201

    Script resize immagini

    Ciao a tutti, mi rendo conto che questo argomento è stato trattato più volte, ma siccome non sono riuscito a fare quello che mi interessava, mi permetto ancora di disturbare voi luminari, con la speranza che qualcuno mi dia una mano.

    Ho un script che da un form mi invia l'immagine in una cartella e mi iserisce il nome del file nel DB ($img)
    Codice PHP:
    <?

    ?>
    <html>
    <head>
    <title>:informatica.ch::</title>
    <link rel="stylesheet" type="text/css" href="../cm.css">
    <base target="_self">
    <style>

    </style>
    </head>
    <body bgcolor="#ECF8E9">
      

    <p align="center">

    <?
    include("config.inc.php");

    $data date("d.m.Y");
    $ora date("H:i");

        if (
    $_POST["action"] == "post") {



    ## connessione al DB ##

    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "<div align=\"center\"><FONT COLOR=\"#FF0000\">Errore nella connessione.</FONT></div>");
    mysql_select_db($db_name$db)
    or die (
    "<div align=\"center\"><FONT COLOR=\"#FF0000\">Errore nella connessione.</FONT></div>");

    ## connesso , in teoria ##

    if ($titolo == "")
        {
                    echo 
    "<FONT SIZE=\"-1\" COLOR=\"#FF0000\">Manca il titolo
    </font>"
    ;
                    exit;
        }
    if (
    $mex == "")
        {
                    echo 
    "<FONT SIZE=\"-1\" COLOR=\"#FF0000\">Manca il messaggio
    </font>"
    ;
                    exit;
        }

    if (
    $img != ""){
        
    copy ($_FILES['img']['tmp_name'], "imgnews/".$_FILES['img']['name']); 
    }

    $img $_FILES['img']['name'];

        
    $query "INSERT INTO cm_news (titolo, mex, img, pos, data, ora)
    VALUES ('
    $titolo', '$mex', '$img', '$data', '$ora')";


    if (
    mysql_query($query$db)){

    echo 
    "




    Perfetto news aggiunta"
    ;

    }
    else{
    echo 
    "Erorre durante l'inserimento";}
    mysql_close($db);
    }




    ?>
    Fino qui tutto bene, ora si tratta di fare il resize dell'immagine, ho trovato questo codice in it.php.net, sembra geniale, se funziona:

    Codice PHP:
     $maxx=100;    // maximum width
       
    $maxy=75;    // maximum height

       
    $name=strtolower(substr($_FILES['file']['name'],0,-4)).".jpg";  // name of file - must be jpg
         
    $size GetImageSize ($_FILES['file']['tmp_name']);        // params of image

       
    if ($size[0]>$size[1]) {$sizemin[0]=$maxx;$sizemin[1]=$maxy;};
       if (
    $size[1]>$size[0]) {$sizemin[0]=$maxy;$sizemin[1]=$maxx;};
       
       
    $im=@imagecreatefromjpeg($path);                // path to your gallery
       
    $small imagecreatetruecolor($sizemin[0], $sizemin[1]);    // new image
       
    ImageCopyResampled($small$im0000$sizemin[0], $sizemin[1], $size[0], $size[1]);
       
    // below is main function resampling image

       
    ImageDestroy($im);                        // free memory

       
    if (ImageJPEG($small,$path,100))                // try to save image
           
    {
           echo 
    "File $path has been written
    \n"
    ;            // success
           
    echo "size: ".$sizemin[0]."x".$sizemin[1] ."
    \n"
    ;
           }
         else
           {
           echo 
    "<font color=red>[b]";                    // failed to write file
           
    echo "Error ! File has not been written.";
           echo 
    "[/b]</font>
    \n"
    ;
           }; 
    Va bene questo codice?
    Qualcuno sa come posso integrare questo codice all'interno del mio script sopra pubblicato...help me

    Se riesco a integrarlo nel mio script ho risolto il mio problema....

    Grazie anticipate
    teo

  2. #2
    Codice PHP:
    //crea su file sistem una immagine ridimensionata
    function resize_jpg_file ($img,$maxX 220$maxY 170)
     {
      
    $src imagecreatefromjpeg($img); 
      
    $RealX imagesx($src);
      
    $RealY imagesy($src);

      if (
    $RealX $maxX
        {
         
    $newX $maxX;
         
    $newY = ($RealY/$RealX)*$newX;
        }
        else
        {
         
    $newY $maxY;
         
    $newX = ($RealX/$RealY)*$newY;
        }

       
    $dst imagecreatetruecolor($newX$newY); 
       
    imagecopyresized($dst$src0000$newX$newY$RealX$RealY); 
       
    imagejpeg($dst'new_'.$img60); 
       return 
    $dst;

    crea una nuova immagine che si chiama new_NOMEIMMAGGINE



    passi a questa funzione le tue immagini originali, ridimensioni, elimini l'originale, inserisci nel db il path con il nome originale + il prefisso "new_"....

    ovviamente al poso di "new_" puoi usare quello che vuoi, basta che modifichi opportunamente nella funzione..





  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201

    grazie

    Grazie della pronta risposta, ma cosa pensi dello script che ho postato io?
    teo

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201
    Scusa l'imbranatezza, ma il collegamento al db lo fai dopo questa funzione giusto??
    teo

  5. #5
    [supersaibal]Originariamente inviato da teo2
    Scusa l'imbranatezza, ma il collegamento al db lo fai dopo questa funzione giusto?? [/supersaibal]
    quella è solo una funzione a cui passi il path di un'immagine e ti crea una nuova immagine... stop...

    tu non hai che da chiamarla quando ti serve, dopo averla chiaramente dichiarata


    il db lo interroghi quando ti serve.. da come hai posto il problema devi fare così:

    fai l'upload dell'immagine, la ridimensioni, cancelli la vecchia, inserisci nel database la nuova... stop...


  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201

    Scusa...

    Ma se devo inserire la path nel db non devo collegarmi subito allo stesso?
    teo

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201
    inoltre ho degli altri campi dove inserire dati nel db...come vedi nello script che ho postato
    teo

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.