Newsgroup: it.comp.www.php
Titolo: Gestire la grandezza di un immagine

Qualcuno mi potrebbe dare una dritta su come rimpicciolire un'immagine 
mantenendo il suo aspect ratio?
Sicuramente JScript lo può fare, ma preferirei usare, sempre se esiste 
tale possibilità, php...tanto per non avere problemi con tutti sti browser.
Ciao e grazie
Tiziano

Tiziano Crimella ha scritto:

librerie GD
-- 
Napolux
Bombing for peace is like fucking for virginity
http://napolux.altervista.org
http://napolux.deviantart.com

 librerie GD
Ti ringrazio moltissimo
ciao

 ha scritto nel messaggio 
news:dln64u$v66$1...@area.cu.mi.it...

NEL php 4 non funzionava tanto bene sul 5 è miglioarato ? e poi non rallenta 
tanto ? 

 tanto ? 
Ho fatto una prova con imagecopyresized() passandogli un immagine da 
1.5Mb e mi é parso abbastanza veloce.
In piů, il server che mi "ospita" hanno ancora la versione 4 e quindi 
non posso vedere la differenza.
L'importante é che funzioni.
ciao e grazie ancora

 non posso vedere la differenza.
Quello che conta č la versione della libreria gd che č installata sul 
server; se c'č la versione 2.0 ti consiglio di usare imagecopyresampled 
invece di imagecopyresized.
Per sapere la versione di gd installata sul server basta scrivere
<?php
$arr = gd_info();
echo $arr['GD Version'];
?>

"Alex" <no...@am.grazie> ha scritto nel messaggio 
news:438255cd$0$27610$4faf...@reader1.news.tin.it...

a me interessa questo argomento ma in pratica con quelle funzioni 
ridimensiono una immagine rispettando l'aspect ratio ?
ma posso anche dirgli tipo "non eccedere oltre totx e toty" ?

 ma posso anche dirgli tipo "non eccedere oltre totx e toty" ?
Questo lo gestisci tu! :) tramite
list($width , $height, $type, $attr) = getimagesize($file);
puoi avere le informazioni sull'immagine che è stata caricata sul 
server; se poi vuoi ridimensionarla basta che ti calcoli una nuova 
dimensione che rispetti le proporzioni dell'immagine esistente.
Esempio pratico per rimpicciolire una jpg a 200 px di larghezza:
<?php
// prendo i dati dell'immagine originale
list($width,$height,$type,$attr)=getimagesize($_FILES['nome_img']['tmp_name']);
// controllo che il file caricato sia davvero una jpg
if($type!=2)
{
echo "Non fare il furbo: questa non è una jpg!!!";
}
else
{
// imposto la larghezza e calcolo l'altezza in proporzione
$new_width = 200;
$new_height = ceil((200*$height)/$width);
// carico l'immagine
$src_img = imagecreatefromjpeg($_FILES['nome_img']['tmp_name']);
// creo una immagine vuota della dimensione che mi serve
$dst_img = imagecreatetruecolor($new_width, $new_height);
// copio l'immagine originale dentro la nuova
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_width,$new_height,$width,$height); 
// imposto l'antialias (opzionale, è ovvio!)
imageantialias ($dst_img, TRUE);
// salvo l'immagine (l'ultimo parametro è la qualità della jpg)
imagejpeg($dst_img, "images/".$_FILES['nome_img']['name'], 80);
// infine libero la memoria
@imagedestroy($src_img);
@imagedestroy($dst_img);
}
?>
Non l'ho provato ma dovrebbe funzionare! Per gli altri formati di 
immagine alcuni comandi possono variare, ma per questo ti rimando al 
manuale; tieni presente che - a differenza di quanto riportato su 
php.net
 - il supporto al formato gif è stato reintrodotto nelle gd2.