Maison >développement back-end >tutoriel php >Comment mosaïquer une partie d'une image via php
Mosaïque partielle d'image PHP
Principe :
Oui pour chaque pixel de la zone sélectionnée dans l'image, augmentez la largeur et la hauteur pour créer un rectangle. Les rectangles de chaque pixel se chevauchent pour former un effet mosaïque.
Cet exemple utilise imagecolorat de la bibliothèque GD pour obtenir la couleur des pixels, et utilise imagefilledrectangle pour dessiner le rectangle.
Rendu :
Le code est le suivant :
<?php /** 图片局部打马赛克 * @param String $source 原图 * @param Stirng $dest 生成的图片 * @param int $x1 起点横坐标 * @param int $y1 起点纵坐标 * @param int $x2 终点横坐标 * @param int $y2 终点纵坐标 * @param int $deep 深度,数字越大越模糊 * @return boolean */ function imageMosaics($source, $dest, $x1, $y1, $x2, $y2, $deep){ // 判断原图是否存在 if(!file_exists($source)){ return false; } // 获取原图信息 list($owidth, $oheight, $otype) = getimagesize($source); // 判断区域是否超出图片 if($x1>$owidth || $x1<0 || $x2>$owidth || $x2<0 || $y1>$oheight || $y1<0 || $y2>$oheight || $y2<0){ return false; } switch($otype){ case 1: $source_img = imagecreatefromgif($source); break; case 2: $source_img = imagecreatefromjpeg($source); break; case 3: $source_img = imagecreatefrompng($source); break; default: return false; } // 打马赛克 for($x=$x1; $x<$x2; $x=$x+$deep){ for($y=$y1; $y<$y2; $y=$y+$deep){ $color = imagecolorat($source_img, $x+round($deep/2), $y+round($deep/2)); imagefilledrectangle($source_img, $x, $y, $x+$deep, $y+$deep, $color); } } // 生成图片 switch($otype){ case 1: imagegif($source_img, $dest); break; case 2: imagejpeg($source_img, $dest); break; case 3: imagepng($source_img, $dest); break; } return is_file($dest)? true : false; } $source = 'source.jpg'; $dest = 'dest.jpg'; $flag = imageMosaics($source, $dest, 176, 98, 273, 197, 4); echo '<img src="'.$source.'">'; echo '<img src="'.$dest.'">'; ?>
Cet article explique comment mosaïquer partiellement des images via PHP Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP.
Recommandations associées :
Comment obtenir le type MIME d'un fichier via php Toutes les informations sur la vidéo utilisateur
Caractère php codage du contenu lié à la conversion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!