php怎么把水印生成右下角

worktile 其他 107

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,要将水印生成在图片的右下角,可以通过以下步骤实现:

    1. 加载原始图片:使用imagecreatefromjpeg()、imagecreatefrompng()或imagecreatefromgif()函数加载原始图片,并将其赋值给一个变量。

    2. 创建水印图片:可以使用imagecreatefrompng()、imagecreatefromgif()或imagecreatefromjpeg()函数创建一个透明的PNG、GIF或JPEG格式的图片,并将其赋值给一个变量。

    3. 获取原始图片和水印图片的宽高:分别使用imagesx()和imagesy()函数获取原始图片和水印图片的宽高。

    4. 计算水印位置:根据原始图片和水印图片的宽高,计算水印生成的右下角的坐标。可以使用原始图片宽度减去水印图片宽度,以及原始图片高度减去水印图片高度,得到水印生成位置的x和y坐标。

    5. 将水印合并到原始图片上:使用imagecopy()或imagecopymerge()函数将水印图片合并到原始图片上。根据计算得到的水印位置坐标,将水印图片的内容复制到原始图片上。

    6. 输出生成的图片:使用imagejpeg()、imagepng()或imagegif()函数将生成的图片输出到浏览器或保存到服务器上。

    下面是一个示例代码:

    “`php
    // 加载原始图片
    $originalImage = imagecreatefromjpeg(‘original.jpg’);

    // 创建水印图片
    $watermarkImage = imagecreatefrompng(‘watermark.png’);

    // 获取原始图片和水印图片的宽高
    $originalWidth = imagesx($originalImage);
    $originalHeight = imagesy($originalImage);
    $watermarkWidth = imagesx($watermarkImage);
    $watermarkHeight = imagesy($watermarkImage);

    // 计算水印位置
    $watermarkX = $originalWidth – $watermarkWidth;
    $watermarkY = $originalHeight – $watermarkHeight;

    // 将水印合并到原始图片上
    imagecopy($originalImage, $watermarkImage, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight);

    // 输出生成的图片
    header(‘Content-Type: image/jpeg’);
    imagejpeg($originalImage);
    “`

    以上代码中的`original.jpg`是原始图片的路径,`watermark.png`是水印图片的路径。你可以根据实际情况修改这些路径。

    通过以上步骤,你就可以将水印生成在图片的右下角。这个方法适用于任何大小的图片和水印图片。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,可以使用GD库来实现给图片添加水印并生成在右下角的效果。下面是实现的步骤:

    1. 打开要添加水印的图片:
    “`php
    $sourceImage = imagecreatefromjpeg(‘source.jpg’);
    “`

    2. 打开水印图片:
    “`php
    $watermarkImage = imagecreatefrompng(‘watermark.png’);
    “`

    3. 获取原始图片和水印图片的宽度和高度:
    “`php
    $sourceWidth = imagesx($sourceImage);
    $sourceHeight = imagesy($sourceImage);

    $watermarkWidth = imagesx($watermarkImage);
    $watermarkHeight = imagesy($watermarkImage);
    “`

    4. 计算水印的位置(右下角):
    “`php
    $positionX = $sourceWidth – $watermarkWidth – 10;
    $positionY = $sourceHeight – $watermarkHeight – 10;
    “`
    需要根据具体的情况调整10的值,以使水印与图片的边缘有一定的间隔。

    5. 将水印图片复制到原始图片上:
    “`php
    imagecopy($sourceImage, $watermarkImage, $positionX, $positionY, 0, 0, $watermarkWidth, $watermarkHeight);
    “`

    6. 输出添加水印后的图片,可以选择输出成文件或直接在浏览器显示:
    “`php
    imagejpeg($sourceImage, ‘result.jpg’, 100); // 输出到文件
    header(‘Content-type: image/jpeg’);
    imagejpeg($sourceImage, null, 100); // 直接输出到浏览器
    “`
    在输出前可以根据需要进行图片质量的调整,最后一个参数表示图片的质量,范围为0-100。

    7. 释放资源:
    “`php
    imagedestroy($sourceImage);
    imagedestroy($watermarkImage);
    “`

    通过以上步骤,就可以实现在PHP中将水印生成在原始图片的右下角。可以根据实际需求对代码进行调整和优化。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中给图片添加水印可以使用GD库函数来实现。下面是详细的步骤:

    1. 确保你的PHP环境已经开启了GD库。可以通过 `phpinfo()` 函数来查看。

    2. 在PHP中,可以使用 `imagecreatefromjpeg()` 或 `imagecreatefrompng()` 函数来创建一个初始的图像资源。

    “`php
    // 创建一个图像资源
    $sourceImage = imagecreatefromjpeg(‘source.jpg’);
    “`

    3. 使用 `imagecreatefrompng()` 函数来创建一个水印的图像资源。

    “`php
    // 创建一个水印图像资源
    $watermarkImage = imagecreatefrompng(‘watermark.png’);
    “`

    4. 获取源图像以及水印图像的宽度和高度。

    “`php
    // 获取源图像的尺寸
    $sourceWidth = imagesx($sourceImage);
    $sourceHeight = imagesy($sourceImage);

    // 获取水印图像的尺寸
    $watermarkWidth = imagesx($watermarkImage);
    $watermarkHeight = imagesy($watermarkImage);
    “`

    5. 计算水印在源图像中的位置,一般将其放在右下角。

    “`php
    // 计算水印的位置
    $watermarkX = $sourceWidth – $watermarkWidth;
    $watermarkY = $sourceHeight – $watermarkHeight;
    “`

    6. 将水印图像合并到源图像中。

    “`php
    // 将水印图像合并到源图像中
    imagecopy($sourceImage, $watermarkImage, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight);
    “`

    7. 输出添加水印后的图像。

    “`php
    // 输出添加水印后的图像
    imagejpeg($sourceImage, ‘output.jpg’);
    “`

    完整的代码如下:

    “`php
    // 创建一个图像资源
    $sourceImage = imagecreatefromjpeg(‘source.jpg’);

    // 创建一个水印图像资源
    $watermarkImage = imagecreatefrompng(‘watermark.png’);

    // 获取源图像的尺寸
    $sourceWidth = imagesx($sourceImage);
    $sourceHeight = imagesy($sourceImage);

    // 获取水印图像的尺寸
    $watermarkWidth = imagesx($watermarkImage);
    $watermarkHeight = imagesy($watermarkImage);

    // 计算水印的位置
    $watermarkX = $sourceWidth – $watermarkWidth;
    $watermarkY = $sourceHeight – $watermarkHeight;

    // 将水印图像合并到源图像中
    imagecopy($sourceImage, $watermarkImage, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight);

    // 输出添加水印后的图像
    imagejpeg($sourceImage, ‘output.jpg’);
    “`

    以上代码将会把`source.jpg`图像和`watermark.png`水印合并,并输出为`output.jpg`。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部