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

php简单的上传图片水印实例

基础概念

上传图片水印是指在图片上传到服务器后,为其添加一个或多个水印,以保护图片版权或增加品牌标识。水印可以是文字、图片或者两者的组合。

相关优势

  1. 版权保护:通过添加水印,可以有效防止图片被盗用。
  2. 品牌宣传:水印可以作为品牌的标识,增加品牌曝光度。
  3. 防伪:对于一些重要的图片,水印可以起到防伪的作用。

类型

  1. 文字水印:在图片上添加文字。
  2. 图片水印:在图片上叠加另一张图片作为水印。
  3. 混合水印:同时包含文字和图片的水印。

应用场景

  • 网站图片库
  • 社交媒体
  • 电子商务平台
  • 数字艺术

示例代码

以下是一个简单的PHP上传图片并添加文字水印的实例:

代码语言:txt
复制
<?php
// 检查是否有文件上传
if (isset($_FILES['image'])) {
    $image = $_FILES['image'];
    $image_tmp_name = $image['tmp_name'];
    $image_size = $image['size'];
    $image_error = $image['error'];
    $image_type = $image['type'];
    $image_name = $image['name'];

    // 允许的文件类型
    $allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
    if (in_array($image_type, $allowed_types)) {
        // 移动上传的文件到指定目录
        $destination_folder = 'uploads/';
        move_uploaded_file($image_tmp_name, $destination_folder . $image_name);

        // 添加水印
        $image_path = $destination_folder . $image_name;
        $watermark_text = 'Watermark';
        $font_size = 30;
        $font_color = imagecolorallocatealpha(imagecreatefromstring(file_get_contents($image_path)), 255, 255, 255, 50);
        $font_path = 'arial.ttf'; // 确保字体文件存在

        $image = imagecreatefromstring(file_get_contents($image_path));
        $text_width = imagettfbbox($font_size, 0, $font_path, $watermark_text);
        $text_height = $text_width[1] - $text_width[7];
        $x = imagesx($image) - $text_width[4] - 10;
        $y = imagesy($image) - $text_height - 10;

        imagettftext($image, $font_size, 0, $x, $y, $font_color, $font_path, $watermark_text);

        // 保存带水印的图片
        $output_image_path = $destination_folder . 'watermarked_' . $image_name;
        imagepng($image, $output_image_path);

        imagedestroy($image);
        echo '图片上传并添加水印成功!';
    } else {
        echo '不支持的文件类型!';
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>上传图片并添加水印</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="image" accept="image/jpeg, image/png, image/gif">
        <input type="submit" value="上传">
    </form>
</body>
</html>

参考链接

常见问题及解决方法

  1. 字体文件找不到:确保字体文件路径正确,并且服务器有权限访问该文件。
  2. 图片格式不支持:确保上传的图片格式在允许的范围内。
  3. 水印位置不合适:可以根据需要调整水印的位置和大小。

通过以上步骤,你可以实现一个简单的PHP上传图片并添加文字水印的功能。

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

相关·内容

3分6秒

如何在Mac版Photoshop中去除图片中的水印?

14分50秒

最新PHP基础常用扩展功能 43.图片上传函数封装 学习猿地

21分29秒

最新PHP基础常用扩展功能 52.相册中图片上传 学习猿地

23分8秒

9-使用云存储完成图片的上传及使用图片处理

1分37秒

给图片去水印,Python怎么做?1行代码搞定,是最大的尊重

20分50秒

最新PHP基础常用扩展功能 49.定义图片缩放的功能 学习猿地

6分28秒

最新PHP基础常用扩展功能 53.相册中的图片遍历 学习猿地

1分33秒

如何去水印?这款去水印神器凭什么受到一致好评?

1分58秒

无代码构建系统-云蛛系统AutoBI-anything组件教学:分体-SQL-元素输入-文件框

6分18秒

如何批量打印-合同-账单-协议-发票等票据-可变数据数字印刷-教程分享

2分48秒

046_pdb_debug_调试赋值语句_先声明赋值_再使用

370
1分9秒

漫步虚拟展厅是什么体验?点量云流化带您逛展走起来!

领券