Here is how to create
an image in PHP with background in two colors. First create a background for the image, with imagefill() function, then draw a rectangle on the half of the image, with imagefilledrectangle() function.
Three examples are presented in this page, with the colors for background displayed: horizontally, vertically, and diagonally (on half-diagonal).
1. - Example, PNG image with background in red and white, horizontally. The image is displayed directly in browser.
<?php
// https://coursesweb.net/php-mysql/
// Create a 160x80 image
$width = 160;
$height = 80;
$im = imagecreatetruecolor($width, $height);
// sets red color for background
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);
// sets and draw a white rectangle
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, $height/2, $width, $width/2, $white);
// sets and adds a text
$text = 'CoursesWeb.net';
$text_color = imagecolorallocate($im, 0, 1, 255);
imagestring($im, 5, 12, $height/3.3, $text, $text_color);
// Display directly the image
header('Content-Type: image/png');
imagepng($im);
?>
Results:
2. - Another example, PNG image with background in two colors, vertically. The image is saved on server.
<?php
// https://coursesweb.net/php-mysql/
// Create a 160x80 image
$width = 160;
$height = 80;
$im = imagecreatetruecolor($width, $height);
// sets a color for background
$red = imagecolorallocate($im, 80, 120, 250);
imagefill($im, 0, 0, $red);
// sets and draw a green rectangle in left half
$white = imagecolorallocate($im, 0, 245, 1);
imagefilledrectangle($im, 0, 0, $width/2, $height, $white);
// sets and adds a red text
$text = 'CoursesWeb.net';
$text_color = imagecolorallocate($im, 225, 0, 1);
imagestring($im, 5, 12, $height/3, $text, $text_color);
// Saves the image in 'imgs' folder
imagepng($im, 'addons/php-mysql/image.png');
?>
Results:
3. To create the background with two colors on half-diagonal, draw a triangle on the image, on the half-diagonal, with the imagefilledpolygon() function.
- Example:
<?php
// https://coursesweb.net/
// Create a 160x80 image
$width = 160;
$height = 80;
$im = imagecreatetruecolor($width, $height);
// sets red color for background
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);
// sets and draw a green triangle on the half-diagonal
$white = imagecolorallocate($im, 8, 235, 9);
imagefilledpolygon($im, array(0, 0, 0, $height, $width, $height), 3, $white);
// sets and adds a text
$text = 'CoursesWeb.net';
$text_color = imagecolorallocate($im, 0, 1, 255);
imagestring($im, 5, 12, $height/3.3, $text, $text_color);
// Saves the image in 'imgs' folder
imagepng($im, 'addons/php-mysql/image.png');
?>
Results: