Tengo un pequeño problemilla con un programilla de creación de miniaturas de las imagenes.
Resulta que el programa funciona correctamente de la siguiente forma:
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("original.jpg");
//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,$altura,$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,$altura,$datos[0],$datos[1]);
// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
}
redimensionar_jpeg("original.jpg","mini_original.jpg",200,200,100);
?>
El problema es que necesito que ahora el nombre de la imagen orgiginal me le den por un formulario, por el cual me pasan la variable $foto (nombre de la imagen original).
Entonces el programa quedaría de la forma:
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($foto);
//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,$altura,$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,$altura,$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);
?>
¿Cual es el problema? ¿Que tengo que cambiar?
Muchas Gracias