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

    Visualizzare immagine ridimensionata mantenendo le proporzioni (no upload)

    ciao a tutti, sto cercando uno script che mi consenta di utilizzare delle immagini già caricare sul server la cui dimensione in pixel è variabile e visualizzarle ridimensionate secondo dei limiti max di altezza e larghezza ma mantenendo le proporzioni

    esempio:
    imposto come altezza e larghezza max 100px
    quindi se l'immagine da usare è 1000x600px, lo script deve visualizzarla a 100x60px perché il lato maggiore dev'essere max 100px e di conseguenza l'altro lato dev'essere ridimensionato adeguatamente mantenendo le proporzioni.

    in giro ho trovato solo script che permettono l'upload di file ridimensionandoli secondo dei criteri ma nulla che faccia al mio caso.

    potete aiutarmi? grazie!!!

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    La tua domanda è particolare.

    Stai dicendo che hai una pentola d'acqua a 50° ma vuoi portarla a 100°, ma trovi esempi solo su come portare una pentola d'acqua da 0° a 100°?

    Metà del lavoro è già fatto, accedi ai file anzichè fare l'upload e ridimensione come negli esempi che trovi in giro.

  3. #3
    pentole a parte... in giro trovo degli script che permettono l'upload di immagini e la creazione un una ulteriore immagine miniatura secondo le regole che ho scritto...
    lo script che cerco io è in realtà abbastanza diverso e chiedevo se, al posto di modificare quelli che ho già trovato, qualcuno sapesse dove trovare direttamente quello che cerco...

  4. #4

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Algoritmo:
    - leggi le dimensioni dell'immagine
    - if larghezza > altezza
    --- echo '[img]immagine.jpg[/img]';
    -else
    --- echo '[img]immagine.jpg[/img]';

    in entrambi i casi l'altra dimensione si adatterà in modo da mantenere le proporzioni

  6. #6
    ma se dentro al tag IMG metto solo width o height non rischio che qualche browser lasci l'altra dimensione originale?

    cioè se l'immagine è 400x300 e metto [img]immagine.jpg[/img] non rischio che qualche browser mi ridimensioni l'immagine a 100x300?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    A meno di aver a che fare con versioni preistoriche direi di no (non sono neanche sicuro che browser antichi avrebbero questo comportamento..
    Comunque se hai paura che possa succedere fa così:

    dopo aver letto le dimensioni dell'immagine
    Codice PHP:
    if($larghezza $altezza) {
        
    $aspect_ratio $larghezza/$altezza;
        
    $nuova_altezza round(100/$aspect_ratio);
        echo 
    '[img]immagine.jpg[/img]';
    }

    else {
        
    $aspect_ratio $altezza/$larghezza;
        
    $nuova_larghezza round(100/aspect_ratio);
        echo 
    '[img]immagine.jpg[/img]';


  8. #8

  9. #9
    Originariamente inviato da Alhazred
    A meno di aver a che fare con versioni preistoriche direi di no (non sono neanche sicuro che browser antichi avrebbero questo comportamento..
    Comunque se hai paura che possa succedere fa così:

    dopo aver letto le dimensioni dell'immagine
    Codice PHP:
    if($larghezza $altezza) {
        
    $aspect_ratio $larghezza/$altezza;
        
    $nuova_altezza round(100/$aspect_ratio);
        echo 
    '[img]immagine.jpg[/img]';
    }

    else {
        
    $aspect_ratio $altezza/$larghezza;
        
    $nuova_larghezza round(100/aspect_ratio);
        echo 
    '[img]immagine.jpg[/img]';

    si, questa mi sembra una grande idea...
    sapresti per caso prendere il valore intero del risultato di quelle divisioni?
    non vorrei che la virgola mi generi un errore... grazie!

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Questo ti tronca il numero alla quinta cifra decimale arrotondandola:
    $apect_ratio_troncato = number_format($aspect_ratio, 5);

    Per l'altra divisione invece lascia il round dato che deve restituire un numero intero.

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.