Foros del Web » Programando para Internet » PHP »

Modificar tamaño imagen con PHP

Estas en el tema de Modificar tamaño imagen con PHP en el foro de PHP en Foros del Web. Hola! Quiero conseguir que una imagen con unas dimensiones cualquiera se vea en una de 40x40. El problema es que no quiero que se deforme ...
  #1 (permalink)  
Antiguo 27/08/2011, 06:30
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 16
Antigüedad: 13 años, 2 meses
Puntos: 0
Modificar tamaño imagen con PHP

Hola! Quiero conseguir que una imagen con unas dimensiones cualquiera se vea en una de 40x40. El problema es que no quiero que se deforme ni se vea muy mal.

He probado con esto:

Código PHP:
<?php 

      
//Una Creacion De Jorge Luis Martinez M 

      //http://misCodigos.jlmnetwork.com/ 

/*Este Archivo Recibe Los Parametros $ruta, Que Es La Ruta Interna De La Imagen En El Servidor, Y Los Parametros $ancho y $alto Que Se Refiere Al Alto Y Ancho De La Previsualizacion.*/
$ruta="http://www.index-dvd.com/covers/300/perdidos3-300a.jpg";
$ancho="40";
$alto="40";
$fuente = @imagecreatefromjpeg($ruta);
$imgAncho imagesx ($fuente);
$imgAlto =imagesy($fuente);
$imagen ImageCreate($ancho,$alto);

ImageCopyResized($imagen,$fuente,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto);

Header("Content-type: image/jpg");
imageJpeg($imagen);

?>
Si lo probais, veis que queda una imagen muy pixelada y deformada. Como puedo hacer para que haga la imagen mas pequeña y que luego recorte una parte central?
Algo asi como hace Google+ o Facebook.

Seria de agraceder una ayudita :)
Muchas gracias
  #2 (permalink)  
Antiguo 27/08/2011, 06:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Modificar tamaño imagen con PHP

Pasa por el área de aportes de este foro para que veas un tema que te ayudará a como redimensionar imagenes.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/08/2011, 17:36
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 1 mes
Puntos: 13
Respuesta: Modificar tamaño imagen con PHP

no se como se hace pero supongo que tendrias que decir desde que pixel hasta que pixel quieres que recorte
__________________
Mas vale un codigo que mil palabras
  #4 (permalink)  
Antiguo 28/08/2011, 03:44
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Modificar tamaño imagen con PHP

Cambia la funcion ImageCreate() por ImageCreateTrueColor()
y la funcion ImageCopyResized() por ImageCopyResampled()

Te dejo una funcion sencilla que cree para eso, espero que te sirva, un saludo
Código PHP:
  /*-----------------------------------------------------------------
    *  crearThumbJPEG() : Crea un thumbnail de una imagen JPEG pasada 
    *  autor : Braulio Hernandez | [email protected]
    *
    *  parametros :
    *               $rutaImagen: Ruta al JPEG Original
    *               $rutaDestino: Rutay nombre del archivo Thumb para almacenarlo
    *               $anchoThumb: ancho del thumb = valor por defecto 200px; (opcional)
    *               $altoThumb: alto del Thumb  = valor por defecto 150pz;  (opcional)
    *               $calidadThumb : calidad de respecto a la imagen original por defecto 50(opcional)
    * retorno: retornara false si el thumb no se ha podido crear o la ruta si se ha creado
    *
    * descripcion: toma la ruta de una imagen la redimensiona y crea una vista previa en la ruta especificada
    *              como segundo parametro, (el nombre del archivo thumb debe estar incluido en la ruta
    *               ej /imagenes/thumbs/mithumb.jpeg)
    *
    */

    
function crearThumbJPEG($rutaImagen,$rutaDestino,$anchoThumb 200$altoThumb 150$calidad 50){

        
$original imagecreatefromJPEG($rutaImagen);

        if (
$original !== false){
           
$thumb imageCreatetrueColor($anchoThumb,$altoThumb);
           if (
$thumb !== false){
              
$ancho imagesx($original);
              
$alto imagesy($original);

              
imagecopyresampled($thumb,$original,0,0,0,0,$anchoThumb,$altoThumb,$ancho,$alto);
              
$resultado imagejpeg($thumb,$rutaDestino,$calidad);
              return 
$resultado;
           }
        }
        return 
false;
        
     } 

Última edición por bray; 28/08/2011 a las 03:50

Etiquetas: recortar, reescalar, tamaño
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 19:31.