Ridimensionamento img in php

Salve, vi disturbo per un altro problema:

sto creando una galleria di immagini in php, in pratica visualizza a schermo tutte le img che carico tramite upload , fin'ora però ho messo le dimensioni delle immagini che andrò a caricare, ora, mi chiedo è possibile ridimensionare automaticamente un'immagine ?

Mi spiego meglio se un'immagine che andrò a caricare ha un formato "orizzontale" ovvero più larga è meno stretta, se io assegno delle dimensioni fisse, l'immagine verrà sicuramente distorta, posso ovviare questo problema dando una percentuale di ridimensionamento? Ma se poi una è 1024 x 768 px ed una  è 150 x 140 px probabilmente la seconda neanche la vedo giusto?

...e se assegnassi solo la larghezza?, l'altezza dovrebbe ridimensionarla in proporzione?

Bho, spero abbiate capito qualcosa, Grazie x eventuali suggerimenti!

inviato 10 anni fa
yusizu
X 0 X

in un'altro topic Gianno ha postato uno script che crea una galleria dalle immagini in una cartella e a me le ridimensione in % alla grandezza originale :D quindi dai un'occhiata http://www.phpnews.it/forum/index.php?topic=619.0

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Se assegni solo la larghezza o l'altezza l'altra dimensione è modificata in automatico in modo da mantenere la proporzione.

Per quanto riguarda le dimensioni il php usa la funzione getimagesize, che restituisce un vettore:

<?php
$size=getimagesize($percorsoimmagine); 
$larghezza=$size[0];
$altezza=$size[1];
?>

A questo punto sta a te vedere come usare queste informazioni per modificare l'immagine. Nel caso che hai esposto prima potresti fare un controllo sulla larghezza e se questa supera un certo valore potresti prevedere il ridimensionamento, ad esempio:

<img src="<?php echo $percorsoimmagine;?>" width=<?php echo ($larghezza>=300 ? "300" : "100%");?>>

In questo caso si verifica che la larghezza superi i 300px, in caso affermativo si ridimensiona l'immagine proprio a quel valore, altrimenti la si lascia alla larghezza effettiva.

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda