php怎么看图片加水印
时间 : 2023-04-05 02:32:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在PHP中添加水印是一种常见的图片处理操作,它可以为图片添加一个不透明的标志或文字,以提高图片的版权保护和实用性。下面介绍一种基于GD库的PHP添加水印的方法。
首先,需要开启PHP的GD库扩展,并加载所需的图像文件。使用函数imagecreatefromjpeg()、imagecreatefrompng()或imagecreatefromgif()创建所需的图像对象,这些函数分别用于读取JPEG、PNG或GIF格式的图像文件。
下一步是为水印文字或标志设置颜色、字体、大小和位置。可以使用函数imagettftext()或imagestring()将文字或标志添加到原始图像上。使用函数imagecopy()或imagecopymerge()来将水印图像叠加到原始图像上。
最后,将新图像输出到浏览器或保存到硬盘上。使用函数imagejpeg()、imagepng()或imagegif()实现这一步。
下面是一个示例的PHP代码,演示如何添加水印:
<?php
//加载原始图像
$src_img = imagecreatefromjpeg("test.jpg");
//设置水印文字、字体、颜色和透明度
$watermark_text = "COPYRIGHT @ MY WEBSITE";
$font = "arial.ttf";
$font_size = 16;
$color = imagecolorallocate($src_img, 255, 255, 255); // 设置文字颜色为白色
$alpha = 50; //设置透明度为50%
//使用imagettftext()函数将水印文字添加到原始图像上
imagettftext($src_img, $font_size, 0, 10, 30, $color, $font, $watermark_text);
//加载水印图像
$watermark_img = imagecreatefrompng("watermark.png");
//使用imagecopymerge()函数将水印图像添加到原始图像上
imagecopymerge($src_img, $watermark_img, 0, 0, 0, 0, imagesx($watermark_img), imagesy($watermark_img), $alpha);
//将新图像输出到浏览器
header('Content-Type: image/jpeg');
imagejpeg($src_img);
//保存新图像到硬盘上
imagejpeg($src_img, "output.jpg");
//释放内存
imagedestroy($src_img);
imagedestroy($watermark_img);
?>
在上面的示例中,首先加载了一个名为“test.jpg”的JPEG格式原始图像。然后,使用imagettftext()函数将水印文字“COPYRIGHT @ MY WEBSITE”添加到原始图像的左上角。接下来,加载一个名为“watermark.png”的PNG格式水印图像,并使用imagecopymerge()函数将其添加到原始图像上。最后,新图像被输出到浏览器并且保存到硬盘上。
这是一种使用GD库在PHP中添加水印的方法,它可以被扩展和修改以满足特定的需求。
在PHP中,使用GD库可以方便地对图片进行处理,包括加水印。下面是一种常见的加水印方法:
1. 创建一个画布
首先,需要创建一个画布,即一个空白的图片。可以使用imagecreatefromXXX函数来创建画布。比如,可以使用imagecreatefromjpeg函数创建JPEG格式的画布,imagecreatefrompng函数创建PNG格式的画布。假设你要在图片中心加水印,那么可以根据原始图片的宽和高来确定画布的大小。
```php
// 假设原图为$source_file,水印图为$watermark_file
$source_image = imagecreatefromjpeg($source_file);
$watermark_image = imagecreatefrompng($watermark_file);
$source_width = imagesx($source_image); // 原图宽度
$source_height = imagesy($source_image); // 原图高度
$watermark_width = imagesx($watermark_image); // 水印图宽度
$watermark_height = imagesy($watermark_image); // 水印图高度
$canvas_width = $source_width; // 画布宽度为原图宽度
$canvas_height = $source_height; // 画布高度为原图高度
$canvas_image = imagecreatetruecolor($canvas_width, $canvas_height); // 创建画布
2. 复制原图到画布中
将原图复制到画布中,可以使用imagecopy函数。将原图的左上角点放在画布的左上角。
```php
imagecopy($canvas_image, $source_image, 0, 0, 0, 0, $source_width, $source_height);
3. 将水印图复制到画布中
将水印图复制到画布中,可以使用imagecopy函数。将水印图的中心点放在画布的中心。
```php
$watermark_top = ($canvas_height - $watermark_height) / 2; // 水印图在画布中的top值
$watermark_left = ($canvas_width - $watermark_width) / 2; // 水印图在画布中的left值
imagecopy($canvas_image, $watermark_image, $watermark_left, $watermark_top, 0, 0, $watermark_width, $watermark_height);
4. 输出水印图片
最后,可以将加上水印的画布输出。输出时,需要指定输出格式和输出位置。可以使用imagejpeg函数输出JPEG格式的图片,使用imagepng函数输出PNG格式的图片。
```php
header('Content-type: image/jpeg'); // 输出JPEG格式的图片
imagejpeg($canvas_image);
完整的代码如下:
```php
$source_file = 'source.jpg'; // 原图路径
$watermark_file = 'watermark.png'; // 水印图路径
$source_image = imagecreatefromjpeg($source_file);
$watermark_image = imagecreatefrompng($watermark_file);
$source_width = imagesx($source_image); // 原图宽度
$source_height = imagesy($source_image); // 原图高度
$watermark_width = imagesx($watermark_image); // 水印图宽度
$watermark_height = imagesy($watermark_image); // 水印图高度
$canvas_width = $source_width; // 画布宽度为原图宽度
$canvas_height = $source_height; // 画布高度为原图高度
$canvas_image = imagecreatetruecolor($canvas_width, $canvas_height); // 创建画布
// 复制原图到画布中
imagecopy($canvas_image, $source_image, 0, 0, 0, 0, $source_width, $source_height);
// 将水印图复制到画布中
$watermark_top = ($canvas_height - $watermark_height) / 2; // 水印图在画布中的top值
$watermark_left = ($canvas_width - $watermark_width) / 2; // 水印图在画布中的left值
imagecopy($canvas_image, $watermark_image, $watermark_left, $watermark_top, 0, 0, $watermark_width, $watermark_height);
// 输出水印图片
header('Content-type: image/jpeg'); // 输出JPEG格式的图片
imagejpeg($canvas_image);
需要注意的是,如果需要将加上水印的图片保存到文件中,可以使用imagejpeg或imagepng函数,将文件名作为第二个参数传入。同时也需要注意的是,使用GD库需要在服务器上安装相应的库。
上一篇
php怎么让会员发布新闻
下一篇
北京php找工作怎么样
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章