Pixelar imagenes con PHP
- 27/05/2015
- 10:53 pm
El siguiente script lo que hace es pixelar una imagen con PHP. Utiliza la librería GD de PHP para pixelar la imagen.
<?php // Tamaño del pixel $pixel = 15; /* Pixelar una imagen */ $getImagen = 'mona-lisa.jpg'; //Creamos una variable imagen a partir de la imagen original # $imagen = imagecreatefrompng($getImagen); // Descomentar si es PNG $imagen = imagecreatefromjpeg($getImagen); if(!$imagen) exit('ERROR'); list($ancho,$alto)=getimagesize($getImagen); $superficieTotal = $ancho*$alto; // $superficieRecorrida = 0; $auxX=0; $auxY=0; while($superficieRecorrida <= $superficieTotal){ $posX=0;$posY=0;$data = array(); while($posX <= $pixel and (($auxX + $posX) < $ancho)){ $posY=0; while($posY <= $pixel and (($auxY + $posY) < $alto)){ $rgb = imagecolorat($imagen, ($auxX + $posX), ($auxY + $posY)); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $data[] = array($r,$g,$b); $posY++; } $posX++; } // Busco promedio $r = 0; $g = 0; $b = 0; foreach($data as $d){ $r+= $d[0]; $g+= $d[1]; $b+= $d[2]; } $totalArray = count($data); if($totalArray == 0) $totalArray = 1; $r = $r/$totalArray; $g = $g/$totalArray; $b = $b/$totalArray; $colorPromedio = imagecolorallocate($imagen, $r, $g, $b); imagefilledrectangle($imagen, $auxX, $auxY, ($auxX + $pixel), ($auxY + $pixel), $colorPromedio); // $auxX+= $pixel; if($auxX >= $ancho){ $auxX = 0; $auxY+= ($pixel+1); } $superficieRecorrida+= $pixel*$pixel; } // Header("Content-type: image/jpeg"); imagejpeg($imagen); imagedestroy($imagen); // Fin Pixelar una imagen ?> |
¿Necesitas ayuda? o ¿Asesoramiento webmaster? Registrate en nuestro foro de consultas
Posts Relacionados