卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11179本站已运行3223

php如何使用PHP的GD扩展?

在web开发中,制作图片缩略图、水印等常见操作是经常需要的,使用PHP来进行这些操作是非常方便的。PHP的GD扩展是一个很好的选择,它提供了一些便捷的方法来处理图片。

  1. 安装GD扩展

如果你的PHP没有安装GD扩展,需要先安装扩展。在Linux中可以使用shell命令sudo apt-get install php7.0-gd进行安装,Windows下可以在PHP配置文件php.ini中将extension=gd2的注释去掉即可。

  1. 创建基本图片

现在我们来创建一个简单的PNG图片。PHP的imagecreate()函数可以用于创建一个基础的图片,可以指定宽度和高度。

$width = 200;
$height = 200; 
$image = imagecreate($width, $height);

这里我们创建一个200×200的PNG图片,为了方便,我们将其保存到本地:

header("Content-type: image/png"); 
imagepng($image, "test.png");

这个图片生成后,可以在test.png中找到。这个步骤可以用于创建很多需要的基本图片。

  1. 设置文字

我们经常需要在图片上写一些文字,GD扩展提供了imagestring()函数来完成这个操作:

$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);
$fontFile = 'arial.ttf';
$fontSize = 20;
$text = 'Hello World!';
$x = 50;
$y = 150;

imagettftext($image, $fontSize, 0, $x, $y, $textColor, $fontFile, $text);

这里我们设置了背景色,文字颜色,字体文件,字体大小,文字内容和位置,并使用imagettftext()函数将文字渲染到图像上。要使用imagettftext()函数,需要确保FreeType库已经正确安装在服务器上。

  1. 旋转图像

除了在图片上写文字外,我们还需要时常需要旋转图像,GD扩展也提供了imagecopyrotate()函数完成这个操作:

$degrees = -45; 
$newImage = imagerotate($image, $degrees, 0);
imagepng($newImage, 'rotated.png');

这个例子中会把原始图片旋转45度,最后生成一个新的PNG文件"rotated.png"。除了旋转,还有很多其他的图片处理操作可以使用GD扩展完成。

  1. 加水印

最后,我们来给图片加上水印。这可以用imagecopy()函数来完成。我们可以先将水印缩小,并设置不透明度:

$watermark = imagecreatefrompng('watermark.png');
$watermarkWidth = imagesx($watermark);
$watermarkHeight = imagesy($watermark);
$newWidth = $width / 2;
$newHeight = $height / 2;
$newWatermark = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newWatermark, $watermark, 0, 0, 0, 0, $newWidth, $newHeight, $watermarkWidth, $watermarkHeight); 
imagecopymerge($image, $newWatermark, 0, 0, 0, 0, $newWidth, $newHeight, 50);

这里我们创建一个水印的图片,并将其大小缩小一半,然后通过imagecopymerge()将其加到原始图片上,并设置了50%的不透明度。

这样,我们就学习了GD扩展的一些基本用法。当然,GD扩展还有很多其他的功能,如果你需要的话可以去官方文档查看更多的用法。

卓越飞翔博客
上一篇: 微信小程序中PHP实现通用自适应布局方法
下一篇: php如何使用Phalcon2框架?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏