Foros del Web » Programando para Internet » PHP »

Imagenes en la BD y gd

Estas en el tema de Imagenes en la BD y gd en el foro de PHP en Foros del Web. Estuve buscando un post previo pero no encontre lo que ocupo..... Tengo una galeria de imagenes las fotos estan en binario en la base de ...
  #1 (permalink)  
Antiguo 25/04/2006, 09:49
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Imagenes en la BD y gd

Estuve buscando un post previo pero no encontre lo que ocupo..... Tengo una galeria de imagenes las fotos estan en binario en la base de datos, eso no es problema, el problema es que antes de ser guardadas, quisiera darles un tratado con GD, modificar su tamaño y crear su thumb, una vez lo hice pero manipulando el archivo antes de hacer el upload poruqe lo que la funcion de: "imagecreatetruecolor" y "imagecreatefromjpg" me podian funcionar,... Estuve intenado realizar el mismo procedimiento que hacia solo que en vez de guardar el archivo que me regrese ese binario ya procesado por GD y poder guardarlo en la base de datos (igual aun no se si esto sea lo mejor tener las fotos de la galeria en la BD),

Aqui un ejeplo de como le hacia para cuando los subia a carpetas: (dudo que sea un buen scrip tendra sus bastantes glitches pero me funciona :P )

Código PHP:

        
if(is_uploaded_file($_FILES['imagen']['tmp_name']))
        {
            
mysql_query($query);
            
move_uploaded_file($_FILES['imagen']['tmp_name'], "galeria/".$last_id.$extension);
            
$source_file "galeria/".$last_id.$extension;
            list(
$width$height)=getimagesize($source_file);
                
$h=100;
                
$w=($width*$h)/$height;
            
$thumb=imagecreatetruecolor($w$h);
            
$source=imagecreatefromjpeg($source_file);
            
imagecopyresized($thumb$source0000$w$h$width$height);
            
imagejpeg($thumb"galeria/thumb/thumb_".$last_id.$extension);
            
imagedestroy($thumb);
            
imagedestroy($source);
        } 
Y asi es como las estoy tratando para ahora el caso de que las tengo en la BD:

Código PHP:

$fch 
date ("d/m/y");
$Binario_Nombre_tmp $_FILES[$campo]['tmp_name'];                
$Size_Binario filesize($Binario_Nombre_tmp);                
$ArchivoBinario fopen($Binario_Nombre_tmp,'r');                
$binario_contenido=addslashes(fread($ArchivoBinario,$Size_Binario));
$binario_peso =   $_FILES[$campo]['size'];
$binario_tipo =   $_FILES[$campo]['type'];
                                
/* Creamos el insert */
$Insert="INSERT INTO imagenes (nombre, tipo, imagen, size, fecha) VALUES ('".$binario_nombre."', '".$binario_tipo."', '".$binario_contenido."',  '".$binario_peso."', '".$fch."');";
/*- Probamos el el insert -*/
if(!mysql_query($Insert))
 echo
'<span class="msgerror">Error, al insertar la imagen.</span>';
else
 
$id_imagen=mysql_insert_id(); 
=/ ahora de nuevo mi pregunta, como puedo realizar lo mismo que hago para guardarlo en la bd, pero antes de tomar el binario tratarlo con funciones de GD para modificar su tamaño, siendo que a como veo trabajan con archivos fisicos las funciones de GD.

Bueno de ante mano gracias
__________________
There is no place like 127.0.0.1
  #2 (permalink)  
Antiguo 25/04/2006, 10:00
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Echale un ojo a este link http://www.forosdelweb.com/showthrea...620#post282620
  #3 (permalink)  
Antiguo 25/04/2006, 10:38
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Si, es lo que e estando leyendo, por lo que veo el rollo esta en las funciones:
$Foto=imagecreatetruecolor($w, $h);
$Foto_Original=imagecreatefromjpeg($source_file);
imagecopyresized($Foto, $Foto_Original, 0, 0, 0, 0, $w, $h, $width, $height);
imagejpeg($thumb, "galeria/thumb/thumb_".$last_id.$extension);


el problema es que a como veo imagejpeg me crea el archivo, yo quisiera que este me regresara el binario y guardarlo en una variable para poder insertarlo a la base de datos.

Tome esto del link que mandaste, tomare ese consejo espero me sirva :D:
Cita:
imagecopyresized();

Si lo que queremos es crear imágenes "al vuelo", sin guardarlas en ningún archivo (cosa poco recomendable si usamos la función de más calidad), el segundo parámetro de la función imagejpeg() no se debe de poner, quedando la llamada en el scritp que hay más arriba:

Igual he trabajdo muy poco con gd, y desconzco sus funciones =/, seguire intentado :D gracias!
__________________
There is no place like 127.0.0.1
  #4 (permalink)  
Antiguo 25/04/2006, 13:44
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Sigo sin poder =/
Esto estoy intentando.
Código PHP:
.
                                
$Binario_Nombre_tmp $_FILES['Imagen']['tmp_name'];                
                                list(
$width$height)=getimagesize($Binario_Nombre_tmp);
                                    
$h=150;
                                    
$w=($width*$h)/$height;
                            
                                
$Foto=imagecreatetruecolor($w$h);
                                
$source=imagecreatefromjpeg($Binario_Nombre_tmp);
                                
imagecopyresized($Foto$source0000$w$h$width$height);
                                                                            
                                
$Size_Binario filesize($Foto);                
                                
$ArchivoBinario fopen($Foto,'r');                
                                
$binario_contenido=addslashes(fread($ArchivoBinario,$Size_Binario)) 
__________________
There is no place like 127.0.0.1
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:31.