Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour réaliser le partage d'exemples de codage d'images

Comment utiliser PHP pour réaliser le partage d'exemples de codage d'images

*文
*文original
2017-12-25 14:35:012058parcourir

Comment utiliser PHP pour implémenter le codage d'images ? Le codage d'image peut être réalisé à l'aide de la bibliothèque GD. Cet article présente principalement la méthode d'implémentation du codage partiel des images en PHP. J'espère qu'il sera utile à tout le monde.

Principe :

Ajoutez une certaine largeur et hauteur à chaque pixel de la zone sélectionnée dans l'image pour générer 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 du pixel, et imagefilledrectangle pour dessiner le rectangle.

Le rendu est le suivant :

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 = &#39;source.jpg&#39;;  
$dest = &#39;dest.jpg&#39;;  
  
$flag = imageMosaics($source, $dest, 176, 98, 273, 197, 4);  
echo &#39;<img src="&#39;.$source.&#39;">&#39;;  
echo &#39;<img src="&#39;.$dest.&#39;">&#39;;  
?>

Recommandations associées :

Comment ouvrir la bibliothèque GD en php ?

Qu'est-ce que la bibliothèque GD ? Introduction détaillée au chargement de la bibliothèque GD en PHP

Solution au filigrane tronqué généré par la bibliothèque GD

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn