Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2008, 08:09
xamamo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 7 meses
Puntos: 1
Problemas al crear thumbnail (mini imagenes)

Hola a todos, les cuento mi problema;

Tengo una función (que llama a otra función) que se encarga de crear y guardar en un destino las imagenes en miniatura dada una origen.Tengo imagenes y algunas de ellas con el nombre escrito con espacios en blanco entonces cambie los espacios en blanco de los nombres de las imagenes por nada de manera que "image 01.jpg" ahora es "image01.jpg". La funcion encargada de crear las mini imagenes lo hace a la perfección hasta que le pasamos una de estas imágenes modificadas (antes tampoco lo hacia sin modificarlas), pongo aquí las función y a ver si alguien me puede ayudar...:

function thumbjpeg($imagen, $altura, $ancho, $dir_thumb, $prefijo_thumb, $nombre_imagen_nueva) {
//$dir_thumb = "tn/";//donde guardo el thumnail?
//$prefijo_thumb = "tn_";//prefijo para el nombre

$nombre=basename($imagen);
$nombre_nuevo=basename($nombre_imagen_nueva);
$camino=dirname($imagen)."/";

//me fijo si existe el directorio y sino lo creo
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die("<BR>No se ha podido crear el directorio ".$camino.$dir_thumb);

//me fijo si existe el thumb
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$n ombre_nuevo)) {
//$img = @imagecreatefromjpeg($camino.$nombre) or die("<BR>No se encuentra la imagen $camino$nombre<br>\n");
$img = @imagecreatefromjpeg($camino.$nombre);

//$datos = @getimagesize($camino.$nombre) or die("<BR>Problemas con $camino$nombre<br>\n");
$datos = @getimagesize($camino.$nombre);

//echo "img: $img, datos: $datos<br>";
if ($img==""||$datos=="") return false;

//saco el ratio para no deformar la imagen
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);

if ($anchura>$altura){
$ratio = ($datos[0] / $ancho);
$altura = round($datos[1] / $ratio);
$anchura = $ancho;
}

// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);

// con esta función la reescalamos
ImageCopyResampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);

//creo el thumb imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb .$nombre_nuevo, 75);
}
}
function crear_mini_imagenes($Nombre_img_origen,$Idinm,$anc ho,$alto)
{
if($Nombre_img_origen != "")
{
$ruta = 'http://xx.xx.xxx.xxx/Imagenes/';
$Carpeta = str_replace(".","_",$Idinm);
$Nombre_img_origen = str_replace(" ","",$Nombre_img_origen);
$Path_Img_Origen =$ruta.$Carpeta."/".$Nombre_img_origen;
//if (file_exists($id_fichero) ){
$Path_Img_Destino = "images/propiedades/".$Nombre_img_origen;//.strtolower(substr($id_fichero,strlen($id_fichero)-3,3));
// echo $Path_Img_Destino;
// echo "Fichero fin: $id_fichero_fin<br>";
$nombre_imagen_mini = "mini_".$Carpeta."_".$Nombre_img_origen;
// echo "Imagen MINI: ".$nombre_imagen_mini;
//if(file_exists($nombre_imagen_mini == false))
//{
if (file_exists($Path_Img_Destino) == false ){
copy($Path_Img_Origen, $Path_Img_Destino);
}
$imagen = $Path_Img_Destino;

$prefijo_thumb = "";
$calidad = "90";

thumbjpeg($imagen, $alto, $ancho, $dir_thumb_p, $prefijo_thumb, $nombre_imagen_mini);

if(file_exists($Path_Img_Destino))
unlink($Path_Img_Destino);
//}
return "images/propiedades/".$nombre_imagen_mini;
// }
}
}
?>

Y la uso así...:

crear_mini_imagenes("EsGarrovers.jpg","90510791984 _1851",100,100);

Si alguien sabe a que puede ser debido... le agradecería su ayuda... Saludos y gracias de antemano!!