76、PHP颜色或图像填充及不同填充方式

阅读() @2019-05-12 11:46:34

PHP颜色或图像填充及不同填充方式,先来熟悉几个函数:

1、imagefill($image, $x, $y, $color):

本函数将图片坐标 (x,y) 所在的区域着色。参数 $color 表示欲涂上的颜色。

2、imagecolorallocate($image, $red, $green, $blue):

本函数用户图像着色,后面三个参数分别代表红、绿、蓝三原色是色值。

3、imagefilltoborder($image, $x, $y, $border, $color):

本函数将图片中指定的颜色做为边界,着色在其中的封闭区域之中。参数 x、y 为着色区内的坐标,原点 (0,0) 为图形的左上角。参数 border 为颜色值,表填入颜色的边界范围。参数 col 表示欲涂上的颜色。

简单的说就是,给某一块画布的除$x、$y之外的其他区域着色。

4、imagecolorat($image, $x, $y):

本函数可取得图形中某指定点的颜色索引值 (index)。

5、imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h):

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

6、imagecolorsforindex($image, $index):

本函数返回一个具有 red,green,blue 和 alpha 的键名的关联数组,包含了指定颜色索引的相应的值。意思就是:imagecolorat()函数取得的10进制索引颜色值$index,通过这个函数,可以返回一个包括red、green、blue、alpha键名的关联数组。相当于把十进制的色值转换成十六进制的色值,方便使用!

$img = imagecreatefromjpeg('test.jpg');
$indexColor = imagecolorat($img, 20, 20);
$index = imagecolorsforindex($img, $indexColor);

$red = $index['red'];
$green = $index['green'];
$blue = $index['blue'];

$img1 = imagecreatetruecolor(100, 100);
$color = imagecolorallocate($img1, $red, $green, $blue);
imagefill($img1, 0, 0, $color);
header('Content-type:image/jpeg');
imagejpeg($img1);

实例代码如下:

$img = imagecreatetruecolor(300, 300);
$red = imagecolorallocate($img, 255, 0, 0);
$alpha_color = imagecolorallocatealpha($img, 110, 20, 121, 100);
imagefill($img, 0, 0, $alpha_color);
$png = imagecreatefrompng('daiwang.png');
imagecopy($png, $img, 0, 0, 100, 100, 300, 300);
header('Content-type:image/jpeg');
imagejpeg($png);

以上是两个图像叠加在一块,上面的图像是透明色。

$img = imagecreatefromjpeg("cc.jpg");
$green = imagecolorallocate($img, 200, 122, 0);
imagefill($img, 100, 0, $green);
$border = imagecolorat($img, 316, 49);
imagefilltoborder($img, 0, 0, $border, $green);
header("content-type:image/jpeg");
imagejpeg($img);

以上是除$border之外的区域着色。

微信二维码
锐壳主机