创建一个真彩色的空白图片
$img =imagecreatetruecolor(width, height);
设定RGB颜色值
$red = imagecolorallocate($img,0xFF, 0x00, 0x00);
线条的绘制(起始位置)
imageline($img,0, 0, 100, 100, $red);
绘制文字
imagestring($img,5, 0, 0, "Hello world", $red);
图片输出格式
header("content-type:image/png");
保存图片
imagepng($img,$filename);
释放该图片内存
imagedestroy($img);
案例:
1.生成图像验证码
<?php
session_start();
$img = imagecreatetruecolor(95, 40);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$blue = imagecolorallocate($img, 0x0E, 0x89, 0xEB);
imagefill($img,0,0,$blue);
$code = '';
for($i = 0; $i < 4; $i++) {
$code .= rand(0, 9);
}
imagestring($img, 5, 10, 10, $code, $black);
for($i=0;$i<50;$i++) {
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black); //imagesetpixel绘制点来实现噪点干扰
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
header("content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
2.图片添加水印
方法:
a.在图片上面加上一个字符串
b.在图片上加上一个logo或者其他的图片
方法b步骤:
先在已存在的图片建立画布
$im = imagecreatefromjpeg($filename);
再建立一个图像对象
$logo = imagecreatefrompng($filename);
最后imagecopy将logo的图像复制到源图像中
imagecopy($im, $logo, im_X,im_Y,logo_X,logo_Y,$width, $height);