Foros del Web » Programando para Internet » PHP »

Tratamiento en imagenes me diante PHP

Estas en el tema de Tratamiento en imagenes me diante PHP en el foro de PHP en Foros del Web. Buenas a todos...... Tengo una duda... Quiero trabajar con el ancho y alto de las imagenes mediante php.. Os explico el tema. Tengo hecha una ...
  #1 (permalink)  
Antiguo 24/01/2006, 06:45
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 12 años
Puntos: 2
Tratamiento en imagenes me diante PHP

Buenas a todos......
Tengo una duda...

Quiero trabajar con el ancho y alto de las imagenes mediante php..

Os explico el tema. Tengo hecha una aplicacion catalogo en php, lo que ocurre es que el usuario puede subir imagenes, y en el catalogo (php) las reducco mediante codigo html. con width="100" y height="75". pero lo que ocurre es que al tener que cargar la web las imagenes grandes y despues reducirlas.. tarda la web mucho en cargar.

Por eso lo que yo kiero hacer es una aplicacion en la que al subir la img por php, el mismo codigo reduzca la img y me guarde dos "la grande" y " la reducida".. hay algo de esto¿?¿¿

muchas GRACIAS
  #2 (permalink)  
Antiguo 24/01/2006, 09:17
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
esto se arregla haciendo thumbnails con este codigo

Código PHP:
function thumbnail($img_origen$nueva_anchura$carpeta$img_destino){ 
    
$extension explode(".",$img_origen); 
    
$ext count($extension)-1
        if(
$extension[$ext] == "jpg" || $extension[$ext] == "jpeg"
        { 
            
$image ImageCreateFromJPEG($img_origen); 
            
$tipo=1;
        } 
        else if(
$extension[$ext] == "gif"){ 
            
$image ImageCreateFromGIF($img_origen); 
            
$tipo=2;
        } 
        else if(
$extension[$ext] == "png"){ 
            
$image ImageCreateFromPNG($img_origen); 
            
$tipo=3;
        } 
        else 
        { 
            return 
FALSE;
        } 
    
$width  imagesx($image);
    
$height imagesy($image); 
    
$nueva_altura ceil($nueva_anchura $height) / $width ;
        if (
function_exists("imagecreatetruecolor")) 
        { 
           
$thumb ImageCreateTrueColor($nueva_anchura$nueva_altura);
        } 
        if (!
$thumb$thumb ImageCreate($nueva_anchura$nueva_altura); 
    
ImageCopyResized($thumb$image0000$nueva_anchura$nueva_altura$width$height); 
    switch(
$tipo){
        case 
1:
            
header("Content-type: image/jpeg"); 
            
ImageJPEG($thumb$carpeta.$img_destino75); 
        break;
        case 
2:
            
header("Content-type: image/gif"); 
            
imagegif($thumb,$carpeta.$img_destino);
        break;
        case 
3:
            
header("Content-type: image/png"); 
            
imagepng($thumb,$carpeta.$img_destino);
        break;
    }
return 
TRUE
}
//thumbnail 
entonces haces lo siguiente, con el archivo subido
Código PHP:
$nom=$_POST['nombredelaimagen'];
$__carpeta_imgs="../carpetaparaimagenes/";
$__tamanio_thumb=150//ancho del thumbnail
if(!es_imagen($nom))//comprobamos q sea una imagen con formato permidito
{
header("Location: error.php");
exit;
}
if(
file_exists($__carpeta_imgs.$nom))//no podemos subir el archivo si exite uno con el mismo nombre
{
header("Location: error.php");
exit;
}

if(
move_uploaded_file($_FILES['nombredelaimagen']['tmp_name'],$__carpeta_imgs.$nom)){
$img_a=$__carpeta_imgs.$nom;//img original
$img_n=$__carpeta_imgs."_t_".$nom;//img thumbnail
$imagen=getimagesize($img_a);
if(
$imagen[0]>$__tamanio_thumb)//ver si la imagen es mas ancha q lo deseado
thumbnail($img_a,$__tamanio_thumb,"",$img_n);
else
copy($img_a,$img_n);//la copiamos para no tener problemas adelante por flata de archivos
$res=mysql_query("INSERT INTO imagenes (id, nombre) VALUES ('','$nom')")or die("error guradando archivo.<br>".mysql_error());//guardamos el nombre de la imagen
$idarch=mysql_insert_id();//obtenemos el ID de la imagen para ponerlo en el nombre y complicar la repeticion de nombre de archivos
if(file_exists($img_a)){
chmod($img_a,0755);
rename($img_a,$__carpeta_imgs.$idarch."_".$nom);
}
if(
file_exists($img_n)){
chmod($img_n,0755);
rename($img_n,$__carpeta_imgs.$idarch."_t_".$nom);
}
}
//move_uploaded_file
else{
echo (
"Imposible subir el archivo \\\"".$_FILES['archivo']['name']."\\\"");

aca tenes una funcion para ver si el archivo subido es una imagen
Código PHP:
function es_imagen($img){
    
$extension explode(".",$img); 
    
$ext count($extension)-1
        if(
$extension[$ext] == "jpg" || $extension[$ext] == "jpeg" || $extension[$ext] == "gif" || $extension[$ext] == "png"
            return 
TRUE;
        else
            return 
FALSE;       

con todo esto no deberias volver a preocuparte por las miniaturas
espero te sirva
saludos

Última edición por emiliodeg; 24/01/2006 a las 09:36
  #3 (permalink)  
Antiguo 24/01/2006, 10:55
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 12 años
Puntos: 2
Muchisisisisisimas gracias emiliodeg...

voy a probar el codigo.. ya te cuento.
  #4 (permalink)  
Antiguo 27/01/2006, 11:59
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 12 años
Puntos: 2
Hola muy buenas.....

Tienes algun ejemplo ya creado... es qeu no me sale.. tio....

Si no es molestia. gracias
  #5 (permalink)  
Antiguo 27/01/2006, 12:12
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 12 años
Puntos: 2
Hay que instalar alguna libreria???
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 01:45.