Foros del Web » Programando para Internet » PHP »

Redimensionar imagenes

Estas en el tema de Redimensionar imagenes en el foro de PHP en Foros del Web. HOLA que tal a todos... Bueno, lo que quiero que me ayuden, es en este codigo para redimensionar imagenes. Código PHP: //si es valida                  $filename_tipo  =  ...
  #1 (permalink)  
Antiguo 14/08/2012, 16:36
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Redimensionar imagenes


HOLA que tal a todos...

Bueno, lo que quiero que me ayuden,

es en este codigo para redimensionar imagenes.


Código PHP:
//si es valida
                
$filename_tipo trim($_FILES['img_up']['name']);
        
$filename_tipo ereg_replace(" """$filename_tipo);
        
$filename_tipo substr($filename_tipo,'-6');
        
        if(
ereg(".jpg"$filename_tipo)||ereg(".jpeg"$filename_tipo)){
            
$img_tipo='jpeg';
        }elseif(
ereg(".png"$filename_tipo)){
            
$img_tipo='png';
        }elseif(
ereg(".wbmp"$filename_tipo)||ereg(".bmp"$filename_tipo)){
            
$img_tipo='wbmp';
        }elseif(
ereg(".gif"$filename_tipo)){
            
$img_tipo='gif';
        }elseif(
ereg(".xbm"$filename_tipo)){
            
$img_tipo='xbm';
        }

//subo la imagen AL MISMO TAMANO
                
$name_full_img='fotos/snapshot_300004012.jpg';

               if(
move_uploaded_file($_FILES['img_up']['tmp_name'],$name_full_img)){

//Redimensionar a 500px
                    
                    
list($bigw,$bigh)=getimagesize($name_full_img);
                        
                        switch(
$img_tipo){
                            case 
'jpeg':
                                
$imagen=imagecreatefromjpeg($name_full_img);
                                break;
                            case 
'png':
                                
$imagen=imagecreatefrompng($name_full_img);
                                break;
                            case 
'wbmp':
                                
$imagen=imagecreatefromwbmp($name_full_img);
                                break;
                            case 
'gif':
                                
$imagen=imagecreatefromgif($name_full_img);
                                break;
                            case 
'xbm':
                                
$imagen=imagecreatefromxbm($name_full_img);
                                break;
                        }
                        
                        if(
$bigw>500 && $bigh>500){
        
                        
$bigx=0;
                        
$bigy=0;
                        
$minix=0;
                        
$miniy=0;
    
                        
//OPERACION:
                        
if($bigw>$bigh){
                        
$miniw=500;
                        
$minih=($bigh*$miniw)/$bigw;
                        }else{
                        
$minih=500;
                        
$miniw=($bigw*$minih)/$bigh;
                        }
                        
                        
                        
$destino=imagecreatetruecolor($miniw,$minih);
                        
$copy_image=imagecopyresampled($destino,$imagen,$minix,$miniy,$bigx,$bigy,$miniw,$minih,$bigw,$bigh);

$tojpeg=imagejpeg($destino,$archivo); 
                        
                        
$destroy=imagedestroy($destino);
$destroy=imagedestroy($imagen);

              } 
El problema ocurre cuando se sube imagenes en png, se crea una nueva imagen de 500px, pero solo negro, y las imagenes .jpg si se reducen

Desde ya gracias por las respuestas..
  #2 (permalink)  
Antiguo 14/08/2012, 16:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Redimensionar imagenes

Es un poco complicado tratar con imágenes PNG, hay que saber manejar las transparencias.

Te sugiero consultar el manual de GD en el sitio oficial de PHP, me parece que a lo largo de la documentación se explica el por qué así como soluciones.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/08/2012, 17:09
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Redimensionar imagenes

NO pero trato de hacer que todas las imagenes que suban, sea cual sea el formato, se conviertan a jpg, se puede hacer con ese codigo o hace falta algo...
  #4 (permalink)  
Antiguo 14/08/2012, 17:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Redimensionar imagenes

Es lo mismo, es evidente que con tu código buscas exportar todo a JPEG y de eso no queda duda.

Lo que debes manejar es la transparencia para que al cambiar de formato no te pase lo que actualmente sucede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/08/2012, 18:38
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 13 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Redimensionar imagenes

OK

le agregue una par de funciones para habilitar la transparencia:

Código PHP:
                        ////  Preservar transparencia:
                 
                        
                        
if($img_tipo == "gif" || $img_tipo == "png"){
                               
imagecolortransparent($destinoimagecolorallocatealpha($destino000127));
                              
imagealphablending($destinofalse);
                                
imagesavealpha($destinotrue);
                          } 

Última edición por jaristo; 14/08/2012 a las 19:54
  #6 (permalink)  
Antiguo 14/08/2012, 19:54
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Redimensionar imagenes


Pero sigue saliendo solo negro...

Por favor alguien puede ayudarme.
  #7 (permalink)  
Antiguo 14/08/2012, 20:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Redimensionar imagenes

De verdad, eso lo vas a conseguir después de prueba y error hasta que comprendas lo que intentas hacer. Sigue con los ejemplos, vas bien.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 17/08/2012, 00:18
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Respuesta: Redimensionar imagenes

Cita:
Iniciado por pateketrueke Ver Mensaje
De verdad, eso lo vas a conseguir después de prueba y error hasta que comprendas lo que intentas hacer. Sigue con los ejemplos, vas bien.
Ya halle el problema!, pero se necesita una funcion para cambiar el MIME de la imagen, porque la extension cambia a .jpg pero el MIME no...

Existe alguna funcion para esto...

Última edición por jaristo; 17/08/2012 a las 00:46

Etiquetas: png, redimensionar
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 10:26.