Foros del Web » Programando para Internet » PHP »

Como hacer lo mismo que esto pero para otro tipo de imagen?

Estas en el tema de Como hacer lo mismo que esto pero para otro tipo de imagen? en el foro de PHP en Foros del Web. Hola: Con esta funcion consigo redimensionar una imagen jpeg al tamaño deseado. Código PHP: function  redimensionar_jpeg ( $img_original ,  $img_nueva ,  $anchura ,  $altura ,  ...
  #1 (permalink)  
Antiguo 28/01/2005, 07:41
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Como hacer lo mismo que esto pero para otro tipo de imagen?

Hola:

Con esta funcion consigo redimensionar una imagen jpeg al tamaño deseado.

Código PHP:
function redimensionar_jpeg($img_original$img_nueva$anchura$altura$img_nueva_calidad) {
        
        
// crear imagen desde original
        
$img ImageCreateFromJPEG($img_original);
            
        
//miramos el tamaño de la imagen original
        
$datos getimagesize($img_original);
        
        
//Si el alto es mas grande que el ancho
        
if($datos[1]>$datos[0]){
        
            
//intentamos escalar la imagen original a la medida que nos interesa
            
$ratio = ($datos[1] / $altura);
            
$anchura round($datos[0] / $ratio);
            
            
// crear imagen nueva
            
$thumb ImageCreateTrueColor($anchura,$altura);
            
            
// redimensionar imagen original copiandola en la imagen
            
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$altura,$datos[0],$datos[1]);
            
            
// guardar la imagen redimensionada donde indicia $img_nueva
            
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
        }
        
        
//Si el ancho es mas grande que el alto
        
if($datos[0]>$datos[1]){
            
            
//intentamos escalar la imagen original a la medida que nos interesa
            
$ratio = ($datos[0] / $anchura);
            
$altura round($datos[1] / $ratio);
            
            
// crear imagen nueva
            
$thumb ImageCreateTrueColor($anchura,$altura);
            
            
// redimensionar imagen original copiandola en la imagen
            
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$altura,$datos[0],$datos[1]);
            
            
// guardar la imagen redimensionada donde indicia $img_nueva
            
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
        }
            
    } 
¿Como puedo hacer esto pero con imagenes en formato GIF y PNG?

Muchas Gracias

Un Saludo
  #2 (permalink)  
Antiguo 28/01/2005, 08:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Para PNG se trata de cambiar:
ImageJPEG()
ImageCreateFromJPEG()

por

ImagePNG()
ImageCreateFromPNG

Para GIF .. depende de que versión de GD uses podrás o no generar un GIF (lo que es leerlo si que puedes en todas las versiones de GD .. pero no en todas escribirlo=generarlo).

Un saludo,
  #3 (permalink)  
Antiguo 28/01/2005, 11:39
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Esto he conseguido

Por ahora he conseguido para PHP 5.0.3 con GD 2.0.28 lo siguiente:

Código PHP:
function redimensionar($img_original$img_nueva$anchura$altura) {
            
            
// crear imagen desde original
            
$img ImageCreateFromGIF($img_original);
                
            
//miramos el tamaño de la imagen original
            
$datos getimagesize($img_original);
            
            
//Si el alto es mas grande que el ancho
            
if($datos[1]>$datos[0]){
            
                
//intentamos escalar la imagen original a la medida que nos interesa
                
$ratio = ($datos[1] / $altura);
                
$anchura round($datos[0] / $ratio);
                
                
// crear imagen nueva
                
$thumb ImageCreate($anchura,$altura);
                
                
// redimensionar imagen original copiandola en la imagen
                
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$altura,$datos[0],$datos[1]);
                
                
// guardar la imagen redimensionada donde indicia $img_nueva
                
imageGif($thumb,$img_nueva);
            }
            
            
//Si el ancho es mas grande que el alto
            
if($datos[0]>$datos[1]){
                
                
//intentamos escalar la imagen original a la medida que nos interesa
                
$ratio = ($datos[0] / $anchura);
                
$altura round($datos[1] / $ratio);
                
                
// crear imagen nueva
                
$thumb ImageCreate($anchura,$altura);
                
                
// redimensionar imagen original copiandola en la imagen
                
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$altura,$datos[0],$datos[1]);
                
                
// guardar la imagen redimensionada donde indicia $img_nueva
                
imageGif($thumb,$img_nueva);
            }
      } 
pero en PHP 4.3.2 con GD 2.0.12.

¿Hay alguna forma de hacerlo?

Gracias
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 21:43.