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

    Ridimensionare un immagine in modo proporzionale alla larghezza.

    Ciao a tutti.
    Utilizzo il seguente script per effettuare un resize delle immagini inviate mediante un form di upload:

    Codice PHP:
    $thumb_width=100;
    $thumb_height=80;

    $ftmp $_FILES['fileicona']['tmp_name']; // indica la posizione e il nome del file nella cartella temporanea di php

    $fullsize=imagecreatefromjpeg("$ftmp");
    $fullsize_height=imagesy($fullsize);
    $fullsize_width=imagesx($fullsize);

    $imgsmall=imagecreatetruecolor($thumb_width,$thumb_height);

    imagecopyresampled($imgsmall,$fullsize,0,0,0,0,$thumb_width,$thumb_height,$fullsize_width,$fullsize_height);
     
    imagedestroy($fullsize);                
                                
    imagejpeg ($imgsmall,"$dir_thumb");//posso modificare il percorso dell'immagine da qui

    imagedestroy($imgsmall); 
    Lo script effettua un resize in base alle dimensioni specificate nelle variabili:

    Codice PHP:
    $thumb_width=100;
    $thumb_height=80
    Vorrei però effettuare un resize proporzionale alla larghezza, ovvero fissare la larghezza della miniatura e far creare allo script, in maniera proporzionale, l'altezza.

    Ricordo che lo script originale da cui h opreso spunto per realizzare questo che ho postato era fatto proprio in questo modo, ma sto smanettando da un bel pò ma non riesco a capire come fare e cosa impostare per creare la miniatura in maniera proporzionale.

    Qualcuno può chiarirmi le idee?

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    con
    Codice PHP:
    list($width$height$type$attr) = getimagesize($_SERVER['DOCUMENT_ROOT'].'/cartelladovetienileimmagini/'$_FILES['fileicona']['tmp_name']); 
    ti recuperi le dimensioni del tuo file e con
    Codice PHP:
    imagecopyresampled($imgsmall,$fullsize,0,0,0,0,$width/3,$height/3,$width,$height); 
    che usi anche te ridimensioni..
    puoi anche passare la "divisione" come parametro da un menu a tendina, sostituendo al 3 una variabile..

  3. #3
    Grazie per la risposta
    Codice PHP:
    imagecopyresampled($imgsmall,$fullsize,0,0,0,0,$width/3,$height/3,$width,$height); 
    ma in questo modo io divido la larghezza e l'altezza per 3 giusto?
    Quindi se l'immagine ha una dimensione di 300 px di larghezza e 900 di altezza, la mia miniatura avrà una larghezza di 100 e un'altezza di 300px. Giusto?

    Ma se l'immagine ha una larghezza di 900px, la larghezza sarà di 300 e non più di 100px e a me servirebbe che tutte le miniature avessero una larghezza di 100px ed altezza invece proporzionale.

  4. #4
    Originariamente inviato da spiadadda
    Grazie per la risposta


    ma in questo modo io divido la larghezza e l'altezza per 3 giusto?
    Quindi se l'immagine ha una dimensione di 300 px di larghezza e 900 di altezza, la mia miniatura avrà una larghezza di 100 e un'altezza di 300px. Giusto?

    Ma se l'immagine ha una larghezza di 900px, la larghezza sarà di 300 e non più di 100px e a me servirebbe che tutte le miniature avessero una larghezza di 100px ed altezza invece proporzionale.
    Ciao,
    qui piu' che programmazione si tratta di matematica

    Codice PHP:
    $largh_miniatura=100;
    $fattore_scala=$width/$largh_miniatura;
    $altezza_miniatura=$height/$fattore_scala
    imagecopyresampled
    ($imgsmall,$fullsize,0,0,0,0,$largh_miniatura,$altezza_miniatura,$width,$height); 
    in questo modo la base sarà sempre pari a $largh_miniatura e l'altezza sarà ridotta dello stesso fattore (okkio che questo non ti garantisce miniature tutte della stessa altezza!!)
    ***************************
    Non può piovere per sempre...
    ***************************

  5. #5
    Grazie 1000 per la risposta, ora mi è tutto molto più chiaro!

    Approfitto per togliermi una curiosità....esiste un metodo per ottenere miniature di dimensioni tutte eguali anche le immagini "sorgenti" presentano dimensioni e forme diverse?

  6. #6
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Si, ma dovresti ritagliare l'immagine fino ad avere le dimensioni desiderate. Quindi nel caso di formati non standard perderesti parte dell'immagine.

    Oppure aggiungi delle parti vuote, ma non so quanto convenga rispetto alla soluzione che adotti adesso
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  7. #7
    Originariamente inviato da Leo15
    Si, ma dovresti ritagliare l'immagine fino ad avere le dimensioni desiderate. Quindi nel caso di formati non standard perderesti parte dell'immagine.

    Oppure aggiungi delle parti vuote, ma non so quanto convenga rispetto alla soluzione che adotti adesso
    Scusate per l'up, ma sarei interessato pure io ad avere thumb con dimensioni ed immagini fisse, dove posso trovare il codice?
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  8. #8
    class upload
    questa classe è leggera, compatta ( solo 1 file da includere + quello della lingua per la gestione di errori ed eccezioni) e fa tutto quello che serve e anche più: upload di qualunque file, resize e crop di immagini, aggiunge watermark, reflection, label, bordi, permette di cambiare il formato immagine, la qualità, altre impostazioni quali il contrasto, i colori, etc...
    La documentazione è completissima.

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.