下面是详细讲解"php给图片添加文字水印方法汇总"的完整攻略:
概述
在PHP中,添加水印是个非常常见的需求,特别是对于个人站点、博客等,我们可能经常需要对一些图片进行加水印的处理,以防止盗用或者恶意复制等。而在PHP中,处理图片也是非常方便的,无论是给图片添加文字水印还是给图片添加图片水印,都可以轻松实现。在这里,我们来介绍下PHP给图片添加文字水印的方法。
步骤
1.获取基本图片信息
首先,要对图片进行加水印操作,我们需要先获取原始图片的基本信息,比如图片的大小、格式等等,以方便进行后续操作。在PHP中获取图片的基本信息,可以使用一些函数,比如getimagesize()
函数,该函数可以返回包含图片尺寸、类型等信息的数组。具体如下:
$imgPath = "image.jpg";
$info = getimagesize($imgPath);
$width = $info[0];//图片宽度
$height = $info[1];//图片高度
$mime = $info['mime'];//图片类型
通过上述代码,我们就可以获取到原始图片的基本信息了。
2.创建画布并载入图片
接下来,我们需要在PHP中创建一个图像画布,以便将水印写在画布上,最后再与原始图片合并。可以使用imagecreatefromjpeg()
函数来创建画布并载入图片,如下:
$im = imagecreatefromjpeg($imgPath);
这个函数会返回一个画板对象,我们可以接着对其进行文字水印的操作。
3.添加水印
到了这一步,我们就要对载入的图片(画布)进行文字水印处理了。在画布上添加水印,可以使用特定的库GD库
,这个库主要用于图像操作,比如图像裁剪、缩放以及水印等。在GD库中,可以设置字体、字号、颜色等参数,然后通过imagettftext()
等函数在画布上绘制文本。
给图片加入文字水印的示例代码如下:
$fontSize = 24;//字体大小
$angle = 0;//旋转角度
$x = 50;//水印所在位置x坐标
$y = 50;//水印所在位置y坐标
$textColor = imagecolorallocate($im, 255, 255, 255);//水印字体颜色
$text = "hello world";//水印内容
$fontPath = "./font/simkai.ttf";//字体文件路径
imagettftext($im, $fontSize, $angle, $x, $y, $textColor, $fontPath, $text);
上述代码将“hello world”作为文字水印添加到了画布对象中。通过设置$fontSize
、$angle
、$x
、$y
、$textColor
、$text
等参数,来定位及参数化水印的一些属性。
4.输出及保存图片
最后,我们将添加了水印的画布进行输出或保存图片的操作。在PHP中,将处理后的图片输出到浏览器,可以使用header()
函数,通过设置HTTP头部信息指定输出格式。而将图片保存到服务器,可以使用imagejpeg()
等函数,将画布对象直接输出为JPEG格式的图片。
输出图片的代码示例:
header('Content-type: image/jpeg');
imagejpeg($im);
最后记得释放内存资源:
imagedestroy($im);
示例
示例1:给图片加水印并输出图片
$imgPath = "image.jpg";
$info = getimagesize($imgPath);
$width = $info[0];//图片宽度
$height = $info[1];//图片高度
$mime = $info['mime'];//图片类型
$im = imagecreatefromjpeg($imgPath);
$fontSize = 24;//字体大小
$angle = 0;//旋转角度
$x = 50;//水印所在位置x坐标
$y = 50;//水印所在位置y坐标
$textColor = imagecolorallocate($im, 255, 255, 255);//水印字体颜色
$text = "hello world";//水印内容
$fontPath = "./font/simkai.ttf";//字体文件路径
imagettftext($im, $fontSize, $angle, $x, $y, $textColor, $fontPath, $text);
//输出图片
header('Content-type: image/jpeg');
imagejpeg($im);
//释放内存资源
imagedestroy($im);
示例2:给图片加水印并保存图片
$imgPath = "image.jpg";
$info = getimagesize($imgPath);
$width = $info[0];//图片宽度
$height = $info[1];//图片高度
$mime = $info['mime'];//图片类型
$im = imagecreatefromjpeg($imgPath);
$fontSize = 24;//字体大小
$angle = 0;//旋转角度
$x = 50;//水印所在位置x坐标
$y = 50;//水印所在位置y坐标
$textColor = imagecolorallocate($im, 255, 255, 255);//水印字体颜色
$text = "hello world";//水印内容
$fontPath = "./font/simkai.ttf";//字体文件路径
imagettftext($im, $fontSize, $angle, $x, $y, $textColor, $fontPath, $text);
//保存图片
$watermarkImagePath = "watermark.jpg";
imagejpeg($im, $watermarkImagePath);
//释放内存资源
imagedestroy($im);
以上是给图片添加文字水印的详细攻略,希望对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php给图片添加文字水印方法汇总 - Python技术站