Hola Salbatore.. yo tengo un metodo por ahi pero funciona solo para jpg, pero talvez cambiandole algo funcione con otras extensiones quedaria asii.. Para este ejemplo el ancho es 250 y la altura 200
Código PHP:
if (is_uploaded_file($_FILES['archivo']['tmp_name']))
{
$ancho_max = 100;
$nombre = $HTTP_POST_FILES['archivo']['tmp_name'];
$datos = getimagesize($nombre);
$ancho = $datos[0];
$alto = $datos[1];
if($ancho > $ancho_max)
{
// Step 1: djpeg decompresses jpeg to pnm
system("djpeg $nombre >$tmpimg");
// Steps 2&3: scale image using pnmscale and then pipe into cjpeg to output jpeg file
system("pnmscale -xy 250 200 $tmpimg | cjpeg -smoo 10 -qual 50 >$nombre");
// remove temp image
unlink($tmpimg);
}
else
{
copy($_FILES['archivo']['tmp_name'], "view/".$_FILES['form_input_file_1']['name']);
}
}
Espero te sirva.. aunnke sinceramente la calidad de la imagen editada si deja mucho que desear.
Aqui te paso el link con el ejemplo completo.. http://blazonry.com/scripting/upload-size.php
Saludos