Es porque $nuevo_tamano es una variable dsponible en el ámbito global del script, pero no en el ámbito local de tu función redimensionar_imagen(). Agrega como primera línea de tu función lo que más arriba colocas:
Código PHP:
if(isset($_POST['boton'])){
$tipo = $_FILES['archivo']['type'];
$tamaño = $_FILES['archivo']['size'];
$nombre = $_POST['nombre'];
# $nuevo_tamano = $_POST['nuevo_tamano'];
if($nuevo_tamano>1){
function redimensionar_imagen($imagen, $nombre_imagen_asociada) {
$nuevo_tamano = $_POST['nuevo_tamano'];
//indicamos el directorio donde se van a colgar las imágenes
$directorio = ".";
//establecemos los límites de ancho y alto
if($nuevo_tamano==2){
# ...........
Un saludo,