English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este ejemplo ilustra cómo generar imágenes borrosas en PHP. Compartimos esto con todos para su referencia, como se muestra a continuación:
<&63;php class image_blur{ /** * Desenfoque gaussiano de imagen (aplicable a png/jpg/formato gif) * @param $srcImg Imagen original * @param $savepath Ruta de destino * @param $savename Nombre de archivo de destino * @param $positon Grado de desenfoque * *Basado en el código de Martijn Frazer, agradecimientos a Martijn Frazer */ public function gaussian_blur($srcImg,$savepath=null,$savename=null,$blurFactor=3{ $gdImageResource=$this->image_create_from_ext($srcImg); $srcImgObj=$this->blur($gdImageResource,$blurFactor); $temp = pathinfo($srcImg); $name = $temp['basename']; $path = $temp['dirname']; $exte = $temp['extension']; $savename = $savename &63; $savename : $name; $savepath = $savepath &63; $savepath : $path; $savefile = $savepath .'/'. $savename; $srcinfo = @getimagesize($srcImg); switch ($srcinfo[2}) { case 1: imagegif($srcImgObj, $savefile); break; case 2: imagejpeg($srcImgObj, $savefile); break; case 3: imagepng($srcImgObj, $savefile); break; por defecto: return 'Fallo de guardado'; //Fallo de guardado } return $savefile; imagedestroy($srcImgObj); } /** * Borrado Fuerte * * @param $gdImageResource Recurso de imagen * @param $blurFactor Nivel de desenfoque seleccionable * Nivel de desenfoque seleccionable 0 usar 3por defecto, más de5muy borroso * @return Tipo de recurso de imagen GD * @author Martijn Frazer, idea basada en http://stackoverflow.com/a/20264482 */ función privada blur($gdImageResource, $blurFactor = 3) {}} // El factor de desenfoque debe ser un entero $blurFactor = round($blurFactor); $originalWidth = imagesx($gdImageResource); $originalHeight = imagesy($gdImageResource); $smallestWidth = ceil($originalWidth * pot(0.5, $blurFactor)); $smallestHeight = ceil($originalHeight * pot(0.5, $blurFactor)); // Para la primera ejecución, la imagen anterior es la entrada original $prevImage = $gdImageResource; $prevWidth = $originalWidth; $prevHeight = $originalHeight; // escalar mucho y luego escalar gradualmente de vuelta, desenfocando todo el camino for($i = 0; $i < $blurFactor; $i += 1) {}} // determinar las dimensiones de la siguiente imagen $nextWidth = $smallestWidth * pot(2, $i); $nextHeight = $smallestHeight * pot(2, $i); // redimensionar la imagen anterior al siguiente tamaño $nextImage = imagecreatetruecolor($nextWidth, $nextHeight); imagecopyresized($nextImage, $prevImage, 0, 0, 0, 0, $nextWidth, $nextHeight, $prevWidth, $prevHeight); // aplicar filtro de desenfoque imagefilter($nextImage, IMG_FILTER_GAUSSIAN_BLUR); // ahora la nueva imagen se convierte en la imagen anterior para el siguiente paso $prevImage = $nextImage; $prevWidth = $nextWidth; $prevHeight = $nextHeight; } // escalar de vuelta al tamaño original y desenfocar una vez más imagecopyresized($gdImageResource, $nextImage, 0, 0, 0, 0, $originalWidth, $originalHeight, $nextWidth, $nextHeight); imagefilter($gdImageResource, IMG_FILTER_GAUSSIAN_BLUR); // limpiar imagedestroy($prevImage); // devuelve result devuelve $gdImageResource; } función privada image_create_from_ext($imgfile) {}} $info = getimagesize($imgfile); $im = null; switch ($info[2}) { case 1: $im=imagecreatefromgif($imgfile); break; case 2: $im=imagecreatefromjpeg($imgfile); break; case 3: $im=imagecreatefrompng($imgfile); break; } return $im; } } $image_blur = new image_blur(); $image_blur->gaussian_blur("./1.jpg",null,null,3); ?>
Efecto del archivo original:
Efecto después de generar la imagen borrosa:
Más información sobre contenido relacionado con PHP puede ser encontrada en la sección especial de este sitio: 'Resumen de técnicas de manipulación de gráficos e imágenes de PHP', 'Resumen de técnicas de operación de archivos php', '大全 de técnicas de operación de arrays (Array) de PHP', 'Tutorial de gramática básica de PHP', 'Resumen de técnicas y uso de operadores de PHP', 'Tutorial de diseño de programas orientados a objetos php', 'Resumen de técnicas de programación de red de PHP', 'Resumen de técnicas de uso de cadenas (string) de php', 'php'+Tutorial de operación básica de bases de datos mysql y Resumen de técnicas comunes de operación de bases de datos php
Espero que lo descrito en este artículo pueda ayudar a todos en el diseño de programas PHP.
Declaración: El contenido de este artículo se obtiene de la red, el derecho de autor pertenece al propietario original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar y proporcionar evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.