Visualizzazione risultati 1 fino 5 di 5

Discussione: Funzione getimagesize() e problemi ridimensionamento immagine

  1. #1
    Guest

    Predefinito Funzione getimagesize() e problemi ridimensionamento immagine

    Ciao a tutti.

    Nella home del mio sito dovrei inserire l'ultima immagine inviata.

    Poiche' non ne conosco le dimensioni, ho stabilito come attributi

    Codice HTML:
    <img width="200px" height="188px" ... />
    E fin qui funzionava bene.

    Il problema e' che se un'immagine fosse piu piccola verrebbe ingrandita per essere portata a quelle dimensioni, e quindi si vedrebbe sgranata. Quindi ho scritto questo codice, che valuta i vari casi e ridimensiona di conseguenza:

    Codice PHP:
    $last_img = 'http://www.threads.altervista.org/files/' . $file_name;
    $dim = getimagesize($last_img);

    $width = $dim[0];
    $height = $dim[1];

    if((
    $width > 200) && (height > 188)) {$resize = 0;}
    elseif((
    $width > 200) && (height <= 188)) {$resize = 1;}
    elseif((
    $width <= 200) && (height > 188)) {$resize = 2;}
    elseif((
    $width <= 200) && (height <= 188)) {$resize = 3;}

    switch(
    $resize) {

    case
    0:
    echo
    '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img width="200px" height="188px" src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    break;

    case
    1:
    echo
    '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img width="200px" src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    break;

    case
    2:
    echo
    '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img height="188px" src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    break;

    case
    3:
    echo
    '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    break;

    }
    Il problema e' che non funziona. Tutte le immagini si vedono senza ridimensionamento, anche quelle maggiori delle misure stabilite.

    Cosa sbaglio?

    Grazie, ciao!

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,576

    Predefinito

    Perché non modifichi direttamente i dati dell'html in questo modo?

    Codice PHP:
    echo '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img height="'.$height.'px" src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    In ogni caso non conosco le tue necessità (i vincoli della pagina). Se puoi metterle come vuoi, ad esempio non impostando alcun width o height, l'immagine verrà mostrata con le sue dimensioni originali.... Puoi fare un controllo: se è maggiore di un tot, fissi ad esempio width ad un valore massimo; altrimenti non lo scrivi per niente.

    Ciao!
    Ultima modifica di alemoppo : 06-02-2013 alle ore 21.11.48

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Perché non modifichi direttamente i dati dell'html in questo modo?

    Codice PHP:
    echo '<a href="http://www.threads.altervista.org/topic?id=' . $id_img . '">' . '<img height="'.$height.'px" src="http://www.threads.altervista.org/files/' . $file_name . '" alt="Ultima immagine" /></a>';
    In ogni caso non conosco le tue necessità (i vincoli della pagina). Se puoi metterle come vuoi, ad esempio non impostando alcun width o height, l'immagine verrà mostrata con le sue dimensioni originali.... Puoi fare un controllo: se è maggiore di un tot, fissi ad esempio width ad un valore massimo; altrimenti non lo scrivi per niente.

    Ciao!
    Appunto, e' quello che ho fatto (o almeno tentato) nello script:

    Se le dimensioni sono maggiori di 200x188 fisso un massimo (200x188)

    Se e' solo l'altezza ad essere maggiore modifico solo quella, ecc...

    Il problema e' che cosi' lo script non funziona, e mostra sempre l'immagine a dimensione intera, anche se supera le dimensioni massime che ho imposto, e non capisco il perche'

    ciao!

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,576

    Predefinito

    Una soluzione semplice sarebbe impostare il max-width via css.

    Per lo script sopra, prova ad usare un indirizzo relativo.

    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Una soluzione semplice sarebbe impostare il max-width via css.

    Per lo script sopra, prova ad usare un indirizzo relativo.

    Ciao!
    Grazie mille, max-width e max-height sono esattamente quello che mi serviva.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •