Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    Funzione per ridimensionamento delle immagini

    Salve ragazzi, vorrei chiedervi un info riguardo alle funzioni.

    Io ho questo pezzo di codice:
    Codice PHP:
    $foto=getimagesize("immagine.jpg"); //con la funzione getimagesize() verrà restituito 
    //un array contenente i valori di larghezza e altezza dell'immagine originale;
    $larg=$foto[0]; // il primo elemento dell'array contiene la larghezza della foto;
    $alt=$foto[1]; //  il secondo elemento dell'array contiene l'altezza dell'immagine;
    // si ipotizzi di voler ridimensionare l'immagine a 1/5 della sua dimensione originale;
    // per fare ciò, bisognerà dividere altezza e larghezza originali per 5, quindi:
    $larg=$larg/5;
    $alt=$alt/5;
    // per esser più precisi e passare un valore corretto al tag html img bisognerà
    // eliminare i numeri decimali, quindi:
    $larg number_format($larg0','' ');
    $alt= = number_format($alt0','' ');
    // infine passare alla visualizzazione del thumbnail o riquadro di anteprima: 
    Mi fate capire come trasformare il tutto sottoforma di funzione?
    Grazie anticipatamente,
    gaten
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    <?php
    function riduci($percorso, $fattoreRiduzione){
    list($l, $a) = getimagesize($percorso);
    echo "width = '".ceil($l/5)."px' height = '".ceil($a/5)."px'";
    }
    ?>


    [img]imm.jpg[/img] />

    ovviamente cambiando il 5 puoi cambiare il fattore di riduzione tuttavia meglio avere delle vere thumbnail piuttosto che ricorrere a un semplice ridimensionamento. Le librerire gd fanno al caso tuo

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    A me serve una semplice funzione che mi permette di visualizzare un immagine ingrandita in una immagine ridimensionata in base all'altezza e la larghezza dell'immagine.
    Con le GD, devo impostare io i parametri di alt e larg, e questo mi porta a ricavare delle thumbnail distorte in quanto le immagine presentano parametri diversi.
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    lo script fa quello che desideravi?

    ma se guardi qui , vedi che alla fine devi fare le stesse cose, l'unica differenza è che con gd crei la thumb e non ridimensioni semplicemente l'immagine. In questo modo se la pagina web presenta parecchie immagini o comunque immagini parecchio pesanti viene alleggerita

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Sono riuscito a risolvere il tutto creando una funzione di questo tipo, vedendo un pò i diversi forum cosa fornivano.

    Codice PHP:
    function createThumbnail($imageDirectory$imageName$thumbDirectory$thumbWidth)
    {
    $srcImg imagecreatefromjpeg("$imageDirectory/$imageName");
    $origWidth imagesx($srcImg);
    $origHeight imagesy($srcImg);

    $ratio $origWidth $thumbWidth;
    $thumbHeight $origHeight $ratio;

    $thumbImg imagecreatetruecolor($thumbWidth$thumbHeight);
    imagecopyresized($thumbImg$srcImg0000$thumbWidth$thumbHeight$origWidth$origHeight);

    imagejpeg($thumbImg"$thumbDirectory/$imageName");
    }

    createThumbnail("img""theFileName.jpg""img/thumbs"120); 
    Fà tutto a dovere, solo che vorrei migliorare un pò la qualità dell'immagine che viene creata, sai dirmi qualcosa.

    Gaten...
    Con i sogni possiamo conoscere il futuro...

  6. #6
    All'interno della funzione devi andare ad usare getimagesize() per sapere le dimensioni originali del file.
    Devi effettuare un ciclo in cui confronti l'altezza e la larghezza della foto che hai, con le dimensioni che vuoi ottenere nella miniatura.
    Per capirci: se vuoi una miniatura da 100 px x 80 px, ma comunqe per una questione di layout non vuoi che l'altezza della miniatura sia diversa da 80, e se non vuoi che l'immagine sia distorta, allora devi impostare l'altezza della miniatura ad 80px, andare a vedere quale sia il rapporto di ridimensionamento tra l'altezza originale e 80, quindi moltiplicare la larghezza per lo stesso rapporto.
    Quella sarà la width della tua miniatura.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.