Veamos, no te lo he hecho con tu programa porque tu programa no es un buen ejemplo de la causa del problema. Inentaba que entendieras el problema.
Porque creo que te hubiese dicho:
En tu codigo simplemente dentro de la funcion redimensionar_jpeg() sustituye $foto por $img_original y ya esta, y te queda:
Código PHP:
<?php
function redimensionar_jpeg($img_original, $img_nueva, $anchura, $altura,$img_nueva_calidad) {
// crear imagen desde original
$img = ImageCreateFromJPEG($img_original);
//miramos el tamaño de la imagen original
$datos = getimagesize($img_original);
//Si el alto es mas grande que el ancho
if($datos[1]>$datos[0]){
//intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);
// crear imagen nueva
$thumb = ImageCreateTrueColor($anchura,$altura);
// redimensionar imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$a
ltura,$datos[0],$datos[1]);
// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
//Si el ancho es mas grande que el alto
if($datos[0]>$datos[1]){
//intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[0] / $anchura);
$altura = round($datos[1] / $ratio);
// crear imagen nueva
$thumb = ImageCreateTrueColor($anchura,$altura);
// redimensionar imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$a
ltura,$datos[0],$datos[1]);
// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
}
redimensionar_jpeg($foto,"mini_" .$foto,200,200,100);
?>
fin.
Sinceramente, no se si de ahi entenderias que dentro de la funcion no tienes acceso a las variables definidas fuera de la funcion, tal como explica la pagina del manual que te puse (¿la leiste?). Y que creo que es mejor pasar los valores como parametros, no intentar acceder a las variables "globales" directamente.
Creo que para aprender tienes que pegarte con el problema, entenderlo y una vez entendido, pelearte con la solucion. Esto supone leer, volver a leer, probar, volver a leer, si no se tiene claro preguntar sobre eso en concreto que no se tiene claro, volver a leer, volver a probar, etc. Proceso que puede llevarte 1 hora, 5 minutos o 3 dias.
Pero una vez entendido el problema y la solucion, la proxima vez que tengas un problema parecido (no exactamente igual), lo podras resolver en un abrir y cerrar de ojos.
Ademas, cuando contesto, intento que la contestacion sirva a cualquiera que tenga una duda parecida que pueda que lea este mensaje. Asi que no es una contestacion solo para tu caso concreto, sino para la causa de tu problema concreto.
Saludos.
PD: yazo, no es una critica contra ti ni contra tu mensaje, es simplemente una "declaracion de intenciones", un explicacion de por que no suelo poner el codigo solucion directamente (a no ser que el codigo sea mas explicativo que una explicacion mia).