Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pixelar imagen con PHP y reducir tamaño

Estas en el tema de Pixelar imagen con PHP y reducir tamaño en el foro de PHP en Foros del Web. Hola amigos , Estoy montando una red social, y quisiera hacer algo similar a tuenti pero más avanzado... Cuando entráis a Tuenti, en concreto al ...
  #1 (permalink)  
Antiguo 12/05/2014, 08:06
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Pixelar imagen con PHP y reducir tamaño

Hola amigos ,
Estoy montando una red social, y quisiera hacer algo similar a tuenti pero más avanzado... Cuando entráis a Tuenti, en concreto al perfil de alguien al que no tenéis agregado os sale su avatar de forma blanquecina, eso está hecho con css, y lo cual lo hace vulnerable... Quisiera pixelar la imagen y reducir el tamaño ajustándolo a una width y height que defina, la imagen la pasaría por un get en url de forma encriptada conencriptación propia, ¿Alguien me ayuda a hacerlo? Sé por donde van los tiros, un script similar a marcas de agua, pero las veces que he buscado, los scripts me daban errores.. Se agradece muchísimo :D
  #2 (permalink)  
Antiguo 12/05/2014, 11:51
Avatar de jose_php  
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: Pixelar imagen con php y reducir tamaño

Hola quizá sea lo que quieres, pero con esta clase en PHP puedes hacer el resize:

http://www.forosdelweb.com/wiki/PHP:Manejando_imagenes_al_subirlas_al_servidor
  #3 (permalink)  
Antiguo 12/05/2014, 11:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Pixelar imagen con php y reducir tamaño

Si quieres hacer una marca de agua en PHP puedes hacerlo con la libreria GD:

http://www.php.net/manual/en/image.e...-watermark.php
__________________
Salu2!
  #4 (permalink)  
Antiguo 12/05/2014, 12:50
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Respuesta: Pixelar imagen con php y reducir tamaño

¡Hola! :) ,
Muchisimas gracias a los dos, he resuelto el asunto de cambiar el tamaño, aunque lo más importante para mí es el poder pixelar una imagen mediante php un ejemplo..



Sería muy de agradecer el poder conseguirlo mediante numero de pixeles o niveles para que no sea una cosa que no se pueda ver, más que nada quiero que se vea bien pero no muy clara, así evito que la gente tenga imágenes de otros. ¡Un Saludo! :)
  #5 (permalink)  
Antiguo 12/05/2014, 13:07
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Pixelar imagen con php y reducir tamaño

Lo mas importante es entender como se hace........ y luego aprendes a usar la biblioteca:


Para pixelar una imagen, la divides en areas mas pequeñas y luego sacas el promedio en RGB de los colores que aparecen en cada pixel de cada area
__________________
Salu2!
  #6 (permalink)  
Antiguo 13/05/2014, 10:06
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Respuesta: Pixelar imagen con php y reducir tamaño

Hola Italico ,
¿Y como puedo hacerlo? :/

¡Muchisimas gracias y un saludo! :)
  #7 (permalink)  
Antiguo 13/05/2014, 10:58
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Pixelar imagen con php y reducir tamaño

buenas...

pues tu pregunta me resulto en un reto y te doy la idea:
son varios procesos

primero reduces el tamaño de la imagen y le reduces la calidad esto con la libreria GD, para lograr un pixelaedo aceptable seria en calidad de 20 o menos, ya que el comun en internet es de 72

una vez que ya tengas esa imagen entonces le cambias el tamaño a una mayor sin cambiar la calidad

ejemplo:
tienes una imagen de 1024 x 756 x 200
la reduces a 10 x 6 x 20
y luego la agrandas a 100 x 60 x 20

listo, tienes la imgen pixeleada

Saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #8 (permalink)  
Antiguo 13/05/2014, 11:41
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Respuesta: Pixelar imagen con php y reducir tamaño

¡Hola HalconVigia! :D ,
Muchisimas gracias por tu respuesta :), durante un buen rato he estado pensando y buscando formas, es algo sencillo lo se, pero el script que encontré juntado con mis escasos conocimientos en GD... me es bastante complicado XD, de todos modos seguiré mirando, aunque de momento gracias a tu respuesta he conseguido sacar algo que me vale de momento que es el quitarle calidad, le he puesto 2 de calidad y me va bastante bien esa solución temporal. Por último agradecerte el tiempo que le has dedicado :D. Muchisimas gracias a todos los que respondieron :).

Cierro tema y ¡Un Saludo!
  #9 (permalink)  
Antiguo 17/06/2015, 19:47
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pixelar imagen con PHP y reducir tamaño

Hola,
Antes que nada quiero decir, que mi idea no es revivir un post viejo sin motivos, el motivo es que este post esta muy posicionado en Google y es una lastima que en el post no este la solución al problema.


Dejo el código PHP para pixelear imagenes con Libreria GD


Código PHP:
Ver original
  1. <?php
  2. // Tamaño del pixel
  3.     $pixel = 15;
  4. /* Pixelar una imagen */
  5.         $getImagen = 'mona-lisa.jpg';
  6.         //Creamos una variable imagen a partir de la imagen original
  7. #       $imagen = imagecreatefrompng($getImagen); // Descomentar si es PNG
  8.         $imagen = imagecreatefromjpeg($getImagen);
  9.         if(!$imagen) exit('ERROR');
  10.         list($ancho,$alto)=getimagesize($getImagen);
  11.         $superficieTotal = $ancho*$alto;   
  12.         //
  13.         $superficieRecorrida = 0;
  14.         $auxX=0;
  15.         $auxY=0;
  16.         while($superficieRecorrida <= $superficieTotal){
  17.             $posX=0;$posY=0;$data = array();
  18.             while($posX <= $pixel and (($auxX + $posX) < $ancho)){
  19.                 $posY=0;
  20.                 while($posY <= $pixel and (($auxY + $posY) < $alto)){
  21.                     $rgb = imagecolorat($imagen, ($auxX + $posX), ($auxY + $posY));
  22.                     $r = ($rgb >> 16) & 0xFF;
  23.                     $g = ($rgb >> 8) & 0xFF;
  24.                     $b = $rgb & 0xFF;
  25.                     $data[] = array($r,$g,$b);
  26.                     $posY++;
  27.                 }
  28.                 $posX++;
  29.             }
  30.  
  31.             // Busco promedio
  32.             $r = 0; $g = 0; $b = 0;
  33.             foreach($data as $d){
  34.                 $r+= $d[0];
  35.                 $g+= $d[1];
  36.                 $b+= $d[2];
  37.             }
  38.             $totalArray = count($data);
  39.             if($totalArray == 0) $totalArray = 1;
  40.             $r = $r/$totalArray;
  41.             $g = $g/$totalArray;
  42.             $b = $b/$totalArray;
  43.             $colorPromedio = imagecolorallocate($imagen, $r, $g, $b);
  44.             imagefilledrectangle($imagen, $auxX, $auxY, ($auxX + $pixel), ($auxY + $pixel), $colorPromedio);
  45.             //
  46.             $auxX+= $pixel;
  47.             if($auxX >= $ancho){
  48.                 $auxX = 0;
  49.                 $auxY+= ($pixel+1);
  50.             }      
  51.             $superficieRecorrida+= $pixel*$pixel;
  52.  
  53.         }
  54.         //
  55.         Header("Content-type: image/jpeg");
  56.         imagejpeg($imagen);
  57.         imagedestroy($imagen);
  58.     // Fin Pixelear una imagen
  59. ?>

Fuente y explicación: http://www.marcofbb.com.ar/pixelear-imagenes-con-php/

Etiquetas: reducir, 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 17:57.