技术文摘
PHP 实现图片添加文字或图片水印的代码
2024-12-31 16:09:34 小编
PHP 实现图片添加文字或图片水印的代码
在 Web 开发中,为图片添加水印是一项常见的需求,它可以用于保护图片的版权或者添加特定的标识。下面我们将使用 PHP 来实现为图片添加文字或图片水印的功能。
我们需要确保 PHP 已经安装了 GD 库扩展,因为我们将使用 GD 库的相关函数来处理图片。
<?php
// 打开原始图片
$image = imagecreatefromjpeg('original.jpg');
// 获取图片的宽度和高度
$width = imagesx($image);
$height = imagesy($image);
// 定义水印文字
$text = 'Your Watermark Text';
// 定义文字颜色(白色)
$textColor = imagecolorallocate($image, 255, 255, 255);
// 计算文字在图片中的位置(居中)
$textX = ($width - strlen($text) * imagefontwidth(5)) / 2;
$textY = ($height - imagefontheight(5)) / 2;
// 添加文字水印
imagestring($image, 5, $textX, $textY, $text, $textColor);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($image);
// 释放资源
imagedestroy($image);
?>
上述代码中,我们首先使用 imagecreatefromjpeg 函数打开一张 JPEG 格式的原始图片。然后,获取图片的宽度和高度,以便计算文字水印的位置。接下来,定义水印文字和文字颜色,并计算文字在图片中的位置,使其居中显示。使用 imagestring 函数添加文字水印,最后输出处理后的图片并释放资源。
如果要添加图片水印,代码会稍有不同。
<?php
// 打开原始图片
$image = imagecreatefromjpeg('original.jpg');
// 打开水印图片
$watermark = imagecreatefrompng('watermark.png');
// 获取水印图片的宽度和高度
$watermarkWidth = imagesx($watermark);
$watermarkHeight = imagesy($watermark);
// 计算水印图片在原始图片中的位置(右下角)
$positionX = $width - $watermarkWidth - 10;
$positionY = $height - $watermarkHeight - 10;
// 合并图片
imagecopy($image, $watermark, $positionX, $positionY, 0, 0, $watermarkWidth, $watermarkHeight);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($image);
// 释放资源
imagedestroy($image);
imagedestroy($watermark);
?>
在添加图片水印的代码中,我们先打开原始图片和水印图片,获取水印图片的宽度和高度,并计算其在原始图片中的位置。然后使用 imagecopy 函数将水印图片合并到原始图片上,最后输出并释放资源。
通过以上 PHP 代码,我们可以轻松实现为图片添加文字或图片水印的功能,根据实际需求灵活调整水印的内容、位置和样式,以满足不同的应用场景。
- 后端 GET 请求输入内容处理:兼顾安全性与跨端展示的策略
- React与Vite处理CSS加载的方法
- 实现跨屏交互:主屏按钮点击使副屏弹出框展示数据的方法
- 表格横向排列及防止下标与按钮被遮挡的方法
- Vue 父组件向子组件传递 map 类型变量的方法
- vertical-align属性对元素布局及文字位置变化原理的影响
- 怎样获取函数内部私有变量并赋值给外部变量
- 页面加载时闪现内容后跳转登录界面的问题如何解决
- 实现优雅CSS悬停效果:每行文本悬停现下划线方法
- CSS 实现兄弟元素随最长元素等宽及滚动条位置控制方法
- CSS 伪类实现 span 标签点击高亮状态的方法
- flexbox使用时list-style失效的解决方法
- CSS 如何实现图片在椭圆区域的巧妙重叠
- CSS中px单位究竟是什么
- 多个SCSS文件合并成单个CSS文件的方法