Foros del Web » Programando para Internet » PHP »

Problema con generar thumbs con php

Estas en el tema de Problema con generar thumbs con php en el foro de PHP en Foros del Web. Hola a tod@s!! Tenfo un problema con un script, resulta que sirve para crear thumbs, subiendo los desde un formulario. El problema es que si ...
  #1 (permalink)  
Antiguo 07/10/2009, 10:39
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
Problema con generar thumbs con php

Hola a tod@s!!

Tenfo un problema con un script, resulta que sirve para crear thumbs, subiendo los desde un formulario. El problema es que si que me genera la imagen y donde le digo, redimensionada, pero me sale en negro. Muestro el script:

function CrearThumb($archivoorigen, $archivodestino, $ancho, $alto, $calidadcompresion=100){

Código PHP:
            $formato strtolower(substr($archivoorigenstrpos($archivoorigen"."strlen($archivoorigen)-5)+1)); //así recuperamos el formato del archivo
        
            
            
if($formato == 'jpg' || $formato == 'jpeg'){
            
            echo 
"sa";
            
            
$pic = @imagecreatefromjpeg($archivoorigen);
            
            }else if(
$formato == 'gif'){
            
                
$pic = @imagecreatefromgif($archivoorigen);
            
            }else if(
$formato == 'png'){
            
                
$pic = @imagecreatefrompng($archivoorigen);
            }
            
            
$width imagesx($pic);    
            
            
$height imagesy($pic);
            
            
$fw $ancho;
            
            
$fh = ($alto==0) ? $fw $height $width $alto;
            
            
$imagenorigen=$pic;
         
            
$imagendestino=imagecreatetruecolor($fw$fh);
            
            
$re=imagecopyresampled($imagendestino$imagenorigen0000$fw$fh$width$height);
            
            
imagejpeg($imagendestino$archivodestino$calidadcompresion);
            
            
imagedestroy($imagendestino);
    } 


Saludos y gracias!!
__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com
  #2 (permalink)  
Antiguo 07/10/2009, 20:42
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Problema con generar thumbs con php

¿en todos los tipos de imágenes?, ¿qué hace eso `echo "sa"` ahí?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 08/10/2009, 01:06
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 7 meses
Puntos: 21
Respuesta: Problema con generar thumbs con php

He probado el código y funciona perfecto!

En mi prueba utilize una imagen jpg.

Comprueba la ruta de la imagen origen y el formato.

Aquí tengo una clase para la generación de thumbnails:
http://www.mascodigo.com/creacion-de...s-con-php.html
__________________
----
http://www.mascodigo.com
  #4 (permalink)  
Antiguo 13/10/2009, 10:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema con generar thumbs con php

Hola, gracias por contestar:
jam1138 lo del eco es para saber si entra o no en la función, pero no jode el proceso.

nx00: de lijo probare esta clase que tiene muy buena pinta,

Al final lo solucioné con este código


Código PHP:
function thumbjpeg($imagen,$anchura) {
        
        
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
        
        
$dir_thumb "tmb/";
        
        
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
        // el thumbnail se llamaría "tn_imagen1.jpg"
        
        
        
$camino_nombre=explode("/",$imagen);
        
        
// Aquí tendremos el nombre de la imagen.
        
$nombre=end($camino_nombre);
        
        
// Aquí la ruta especificada para buscar la imagen.
        
$camino=substr($imagen,0,strlen($imagen)-strlen($nombre));
        
        
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
        
        //if (!file_exists($camino.$dir_thumb))
        //mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio $dir_thumb");
        
        // Aquí comprovamos que la imagen que queremos crear no exista previamente
        
if (!file_exists($camino.$dir_thumb.$nombre)) {
        
            echo 
$camino.$dir_thumb.$nombre." NO existía<br>";
            
            
$img imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>");
            
            
// miramos el tamaño de la imagen original...
            
$datos getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>n");
            
            
// intentamos escalar la imagen original a la medida que nos interesa
            
$ratio = ($datos[0] / $anchura);
            
$altura round($datos[1] / $ratio);
            
            
// esta será la nueva imagen reescalada
            
            
            //$x_cropw = $datos[0] + 100;
            
            
if($altura>67){
            
                
$altura 67;
            
            }
            
            
$thumb imagecreatetruecolor($anchura,$altura);
            
            
//$y_cropw = $datos[1] + 67;
                        
            // con esta función la reescalamos
            
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);
            
            
// voilà la salvamos con el nombre y en el lugar que nos interesa.
            
imagejpeg($thumb,$camino.$dir_thumb.$nombre,100);
        }

__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:15.