Maison > Article > développement back-end > Exemple de nouveautés en PHP8 : Comment générer des images à l'aide d'opérateurs de pixels et de code ?
Exemple de nouveautés de PHP8 : Comment générer des images à l'aide d'opérateurs de pixels et de code ?
Avec la sortie de PHP8, nous avons de nombreuses nouvelles fonctionnalités intéressantes. L’un d’eux est l’opérateur pixel, qui nous aide à générer des images plus facilement. Dans cet article, nous apprendrons comment créer des images en utilisant cette nouvelle fonctionnalité et ce nouveau code en PHP.
Tout d’abord, passons brièvement en revue ce que sont les opérateurs de pixels. Les opérateurs de pixels sont un ensemble d'opérateurs utilisés pour manipuler les pixels d'une image. En utilisant ces opérateurs, nous pouvons effectuer diverses opérations sur l'image, comme modifier la couleur des pixels, ajuster le contraste et la luminosité, etc.
Pour les exemples de cet article, nous utiliserons la bibliothèque GD pour manipuler les données d'image. Assurez-vous que l'extension de la bibliothèque GD est installée sur votre PHP.
Tout d’abord, nous devons créer une nouvelle image. Créons une image blanche de 500 pixels de large et 300 pixels de haut. Le code est le suivant :
$width = 500; $height = 300; $image = imagecreatetruecolor($width, $height); $white = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $white);
Dans le code ci-dessus, nous utilisons la fonction imagecreatetruecolor()
pour créer un objet image d'une taille spécifiée, et utilisons la fonction imagecolorallocate()
fonction pour créer un objet de couleur blanche. Nous utilisons ensuite la fonction imagefill()
pour remplir toute l'image de blanc. imagecreatetruecolor()
函数创建了一个指定大小的图像对象,并使用imagecolorallocate()
函数创建了一个白色的颜色对象。然后,我们使用imagefill()
函数将整个图像填充为白色。
现在我们已经创建了一个空白的图像,接下来让我们在图像上绘制一些图形。我们将绘制一个红色矩形和一个蓝色圆形。代码如下:
$red = imagecolorallocate($image, 255, 0, 0); $blue = imagecolorallocate($image, 0, 0, 255); // 绘制矩形 $startX = 100; $startY = 50; $endX = 400; $endY = 250; imagerectangle($image, $startX, $startY, $endX, $endY, $red); // 绘制圆形 $centerX = $width / 2; $centerY = $height / 2; $radius = 100; imagefilledellipse($image, $centerX, $centerY, $radius, $radius, $blue);
在上述代码中,我们使用imagecolorallocate()
函数创建了红色和蓝色的颜色对象。接下来,我们使用imagerectangle()
函数绘制了一个矩形,使用imagefilledellipse()
函数绘制了一个填充的圆形。
现在,让我们使用像素运算符对图像进行一些修改。我们将把图像的每个像素的红色和蓝色分量互换,以创建一种独特的效果。代码如下:
$pixelWidth = imagesx($image); $pixelHeight = imagesy($image); for ($x = 0; $x < $pixelWidth; $x++) { for ($y = 0; $y < $pixelHeight; $y++) { $rgb = imagecolorat($image, $x, $y); $red = ($rgb >> 16) & 0xFF; $blue = ($rgb >> 0) & 0xFF; $green = ($rgb >> 8) & 0xFF; $newRgb = ($blue << 16) | ($green << 8) | ($red << 0); imagesetpixel($image, $x, $y, $newRgb); } }
在上面的代码中,我们使用imagesx()
和imagesy()
函数获取图像的宽度和高度。然后,我们使用两个嵌套的循环遍历图像中的每个像素。
对于每个像素,我们使用imagecolorat()
函数获取其RGB值。然后,我们使用位移和位与运算符提取红色和蓝色分量,并交换它们的位置。最后,我们使用imagesetpixel()
函数将新的RGB值设置回图像。
最后,让我们将修改后的图像保存到文件中。代码如下:
$outputFile = "output.png"; imagepng($image, $outputFile);
在上述代码中,我们使用imagepng()
函数将图像保存到一个名为output.png
rrreee
Dans le code ci-dessus, nous utilisons la fonctionimagecolorallocate()
pour créer des objets de couleur rouge et bleue. Ensuite, nous dessinons un rectangle en utilisant la fonction imagerectangle()
et un cercle rempli en utilisant la fonction imagefilledellipse()
. Maintenant, apportons quelques modifications à l'image à l'aide des opérateurs de pixels. Nous échangerons les composants rouges et bleus de chaque pixel de l'image pour créer un effet unique. Le code est le suivant : rrreee
Dans le code ci-dessus, nous utilisons les fonctionsimagesx()
et imagesy()
pour obtenir la largeur et la hauteur de l'image. Nous utilisons ensuite deux boucles imbriquées pour parcourir chaque pixel de l'image. 🎜🎜Pour chaque pixel, nous utilisons la fonction imagecolorat()
pour obtenir sa valeur RVB. Nous extrayons ensuite les composants rouge et bleu à l’aide d’opérateurs de décalage de bits et ET au niveau du bit et échangeons leurs positions. Enfin, nous utilisons la fonction imagesetpixel()
pour redéfinir les nouvelles valeurs RVB sur l'image. 🎜🎜Enfin, enregistrons l'image modifiée dans un fichier. Le code est le suivant : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons la fonction imagepng()
pour enregistrer l'image dans un fichier nommé output.png
. 🎜🎜Maintenant, en exécutant le code ci-dessus, vous obtiendrez un fichier image avec un effet unique. 🎜🎜Dans cet article, nous avons appris à créer des images à l'aide des opérateurs de pixels et de la bibliothèque GD de PHP8. Nous avons d’abord créé un objet image vierge, puis avons dessiné quelques formes de base sur l’image. Nous avons ensuite apporté quelques modifications à l'image à l'aide d'opérateurs de pixels et avons finalement enregistré l'image modifiée dans un fichier. 🎜🎜J'espère que cet exemple vous aidera à comprendre comment générer des images à l'aide d'opérateurs de pixels et de code. Dans les applications pratiques, vous pouvez utiliser davantage d'opérateurs de pixels pour implémenter diverses opérations sur les images. Je vous souhaite d'écrire du code de traitement d'image plus intéressant dans le monde de PHP8 ! 🎜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!