首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php 中文水印

基础概念

PHP 中文水印是指在 PHP 环境下,将中文文字或图片作为水印嵌入到其他图片中的一种技术。这种技术常用于保护图片版权、标识图片来源或增加图片美观性。

相关优势

  1. 版权保护:通过在图片上添加水印,可以有效防止图片被盗用。
  2. 标识来源:水印可以用来标识图片的来源,增加品牌曝光度。
  3. 美观性:合理设计的水印可以提升图片的整体美观性。

类型

  1. 文字水印:将中文文字作为水印嵌入到图片中。
  2. 图片水印:将一张小图片作为水印嵌入到另一张大图片中。

应用场景

  • 网站图片展示
  • 数字媒体内容保护
  • 商业广告设计

示例代码(文字水印)

代码语言:txt
复制
<?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);
?>

示例代码(图片水印)

代码语言:txt
复制
<?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);
?>

常见问题及解决方法

  1. 中文乱码:确保使用支持中文的字体文件(如 simhei.ttf),并在代码中正确设置字体文件路径。
  2. 水印位置不准确:调整 xy 坐标,确保水印位置符合预期。
  3. 图片质量下降:在 imagejpeg 函数中设置合适的质量参数,如 imagejpeg($dstImage, null, 90);

通过以上方法,可以在 PHP 中实现中文水印功能,并解决常见的技术问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券