PHP 中文水印是指在 PHP 环境下,将中文文字或图片作为水印嵌入到其他图片中的一种技术。这种技术常用于保护图片版权、标识图片来源或增加图片美观性。
<?php
// 加载底图
$dstImage = imagecreatefromjpeg('background.jpg');
// 设置水印文字
$text = '中文水印';
$fontColor = imagecolorallocate($dstImage, 255, 255, 255); // 白色
$fontSize = 20;
$fontFile = 'simhei.ttf'; // 中文字体文件
// 获取文字大小和位置
$textWidth = imagettfbbox($fontSize, 0, $fontFile, $text);
$textHeight = $textWidth[1] - $textWidth[7];
$x = (imagesx($dstImage) - $textWidth[2]) / 2;
$y = (imagesy($dstImage) - $textHeight) / 2;
// 添加文字水印
imagettftext($dstImage, $fontSize, 0, $x, $y, $fontColor, $fontFile, $text);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($dstImage);
// 释放内存
imagedestroy($dstImage);
?>
<?php
// 加载底图和水印图片
$dstImage = imagecreatefromjpeg('background.jpg');
$watermarkImage = imagecreatefrompng('watermark.png');
// 获取水印图片大小
$watermarkWidth = imagesx($watermarkImage);
$watermarkHeight = imagesy($watermarkImage);
// 计算水印位置
$x = imagesx($dstImage) - $watermarkWidth - 10;
$y = imagesy($dstImage) - $watermarkHeight - 10;
// 添加水印图片
imagecopy($dstImage, $watermarkImage, $x, $y, 0, 0, $watermarkWidth, $watermarkHeight);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($dstImage);
// 释放内存
imagedestroy($dstImage);
imagedestroy($watermarkImage);
?>
simhei.ttf
),并在代码中正确设置字体文件路径。x
和 y
坐标,确保水印位置符合预期。imagejpeg
函数中设置合适的质量参数,如 imagejpeg($dstImage, null, 90);
。通过以上方法,可以在 PHP 中实现中文水印功能,并解决常见的技术问题。
领取专属 10元无门槛券
手把手带您无忧上云