之前介绍的是从现有已经存在的图片中创建一个图像资源,那么如何用PHP去创建一个新的图像呢?
两个函数,功能类似于创建一个画布:
- imagecreate():基于调色板的图像
- imagecreatetruecolor():创建一个真实色彩的图像,日常应用的时候建议使用第二种,因为色彩多参数是宽度和高度。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php // 创建一个600*600的图像 $im = imagecreatetruecolor(600, 600); // 设置图像的颜色 $back = imagecolorallocate($im, mt_rand(100,255), mt_rand(100,255), mt_rand(100,255)); // 把颜色填充到图像中作为底色,是从坐标点0,0区填充,这个点是最左上角 imagefill($im, 0, 0, $back); // 把图像输出 // 告知浏览器这里是一个图片资源 header('Content-type:image/png'); // 将一个图像资源输出到文件或者浏览器中 imagepng($im);//输出到浏览器 // imagepng($im,'../image/test.png');//输出到文件 |
note:也有createjpg, createpnw,因此可以使用switch语句来设置content-type以及输出我们需要的图像,这才是我们正确的输出方式。
旋转图像
1 2 3 4 5 6 |
<?php $im = imagecreatefrompng('../image/b.png'); $back = imagecolorallocate($im, 123, 230, 232); $rotate = imagerotate($im, 75, $back); header('Content-type:image/jpeg'); imagejpeg($rotate); |
note:
- imagerotate图像旋转
- 传入第一个参数是图像资源
- 第二个参数是旋转的度数
- 第三个参数是旋转之后留出来的位置的背景色需要我们进行设置。