在PHP程序设计中,使用imagecreate函数可以帮助我们创建并操作图像.这个函数可以基于一张图片创建一个新的图像或者基于一个已有的图像创建一个副本.应用imagecreate还可以在新的图像上使用一些图形渲染函数,比如画布大小、颜色、字体等等,从而帮助我们在PHP程序中快速生成自定义的图形.
// 创建一个宽度为400,高度为300的新图像,颜色为青色. $image = imagecreate(400, 300); $background_color = imagecolorallocate($image, 0, 255, 255); // 将图像存储为.png格式 imagepng($image, 'new_image.png');
执行以上代码,即可在当前目录下生成一个新的图片文件"new_image.png".由于背景颜色是青色,所以呢这张新图片的背景色也是青色.
有时候,我们需要在已有的一张图片的基础上进行进一步的操作,比如旋转、缩放等等,这时候就需要使用imagecreate函数来创建一个现有图片的副本.以下代码演示如何基于现有图片创建新的副本:
// 打开现有的一张图片 $source = imagecreatefrompng('source_image.png'); // 创建一个副本 $copy = imagecreate(imagesx($source), imagesy($source)); // 将现有图片内容复制到副本中 imagecopy($copy, $source, 0, 0, 0, 0, imagesx($source), imagesy($source)); // 将副本存储为.jpg格式 imagejpeg($copy, 'new_copy.jpg');
以上代码演示会创建一个基于现有图片"source_image.png"创建的副本,新的副本的分辨率与现有图片完全相同.
// 创建一张白底图片 $image = imagecreate(400, 300); $background_color = imagecolorallocate($image, 255, 255, 255); // 为画笔设置颜色 $black = imagecolorallocate($image, 0, 0, 0); // 在图片上画一条直线 imageline($image, 100, 100, 300, 200, $black); // 将图像存储为.png格式 imagepng($image, 'new_line.png');
使用字体函数可以在图像上添加各种文字,以下代码演示了如何在图像上添加一些文字:
// 创建一张宽度为400,高度为300,背景色为白色的图片 $image = imagecreate(400, 300); $background_color = imagecolorallocate($image, 255, 255, 255); // 为字体设置颜色 $black = imagecolorallocate($image, 0, 0, 0); // 在图片上写入文本 $text = "Hello, World!"; imagettftext($image, 20, 0, 100, 100, $black, 'arial.ttf', $text); // 将图像存储为.png格式 imagepng($image, 'new_text.png');
使用imagecopyresized函数可以帮助我们快速地缩放一张图片,以下代码演示如何基于现有图片创建一张新的缩略图:
// 打开一张现有图片 $source = imagecreatefromjpeg('source_image.jpeg'); // 创建一个宽度为150,高度为150的新图像 $thumbnail = imagecreatetruecolor(150, 150); // 缩放现有图片到新图像中 imagecopyresized($thumbnail, $source, 0, 0, 0, 0, 150, 150, imagesx($source), imagesy($source)); // 将缩略图存储为.jpg格式 imagejpeg($thumbnail, 'new_thumbnail.jpg');