首先你需要搭建一个Halo 可以参考这篇文章
如果你是要搭建第二个Halo 请参考官方文档
如果你已经搭建好了 就可以继续看下去啦

安装主题与插件

在官方应用商店找到 TimePlus图库管理 插件 拉到最下面点击下载 在填写你plog的站点地址即可



创建图库与配置插件

安装好插件和主题后点击图库创建你想要公开的图库分类

主题配置

  1. 点击主题
  2. 点击主题管理启用TimePlus
  3. 根据标题将配置内容都填写完毕
  • 图库分类填写语法
图库分类名字-1,图库分类名字-2

配置完后上传些图片就能看见专属你的Plog啦

添加水印

此文我就不提供oss的添加水印教程(因为搞图库实在养不起oss)
但是我另辟蹊径也做到了图片的放大拥有水印

改前端代码

找到搭建Plog的Halo配置文件目录

进入 /.halo2/themes/theme-timeplus/templates/macrophoto.html 代码替换为以下

<th:block th:fragment="photo(photo)">
    <article class="thumb img-area">
        <a class="image my-photo"  th:alt="${photo.spec.description}" th:href="${photo.spec.url}+'!sun-watermark'" >
            <img class="zmki_px  my-photo"  th:attr="onerror='this.src='+@{/assets/img/loading.gif}+';this.onerror=null'" th:data-src="${photo.spec.url}"   />
        </a>
        <h2>[[${photo.spec.displayName}]]</h2>
        <p></p>
        <p>[[${photo.spec.description}]]</p>
        <p></p>
        <li class="tag-categorys"
            th:each="group : ${photoFinder.groupBy()}"
            th:if="${#strings.equals(photo.spec.groupName,group.metadata.name)}" >
            <a th:onclick="go([[${group.metadata.name}]])">[[${group.spec.displayName}]]</a>
        </li>
    </article>
</th:block> 

创建一个站点

用什么面板就在什么面板添加一个站点 选择php运行环境即可

水印代码

可以在 即时设计 中快速制作一个水印图片
同时需要在同目录下放置一个名 watermark.png 的水印图片

<?php
$originalImagePath = $_GET['image'];
$originalImagePath = str_replace('!sun-watermark', '', $originalImagePath);

$watermarkImagePath = 'watermark.png';

// 读取原始图像
$originalImage = imagecreatefromjpeg($originalImagePath);

// 读取水印图像
$watermarkImage = imagecreatefrompng($watermarkImagePath);

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

// 计算缩放比例
$scale = min($originalWidth / 10 / $watermarkWidth, $originalHeight / 10 / $watermarkHeight);

// 缩放水印图像
$watermarkNewWidth = $watermarkWidth * $scale;
$watermarkNewHeight = $watermarkHeight * $scale;
$watermarkResized = imagecreatetruecolor($watermarkNewWidth, $watermarkNewHeight);

// 保持透明背景
imagealphablending($watermarkResized, false);
imagesavealpha($watermarkResized, true);
$transparent = imagecolorallocatealpha($watermarkResized, 0, 0, 0, 127);
imagefill($watermarkResized, 0, 0, $transparent);

imagecopyresampled($watermarkResized, $watermarkImage, 0, 0, 0, 0, $watermarkNewWidth, $watermarkNewHeight, $watermarkWidth, $watermarkHeight);

// 计算水印位置(右下角,向中心点同比例偏移10%)
$watermarkX = $originalWidth - $watermarkNewWidth - ($originalWidth * 0.05);
$watermarkY = $originalHeight - $watermarkNewHeight - ($originalHeight * 0.05);

// 在原始图像上叠加缩放后的水印
imagecopy($originalImage, $watermarkResized, $watermarkX, $watermarkY, 0, 0, $watermarkNewWidth, $watermarkNewHeight);

// 设置响应的 Content-Type 为图像类型
header('Content-Type: image/jpeg');

// 输出处理后的图像到浏览器
imagejpeg($originalImage);

// 清理资源
imagedestroy($originalImage);
imagedestroy($watermarkResized);
?>

修改反代配置

在默认生成的 location 内头部加上以下代码即可

如果是同服务器不用担心网速问题 因为跟内网一样

if ($uri ~* ".*!sun-watermark$") {
      rewrite ^ https://站点域名/image_api.php?image=$scheme://$host$uri last;
    } 
至此就可以去看看你的Plog是不是打开图片放大时就带有你的水印了呢