搭建一个自己的Plog
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
首先你需要搭建一个Halo 可以参考这篇文章
如果你是要搭建第二个Halo 请参考官方文档
如果你已经搭建好了 就可以继续看下去啦
安装主题与插件
创建图库与配置插件
安装好插件和主题后点击图库创建你想要公开的图库分类
主题配置
- 点击主题
- 点击主题管理启用TimePlus
- 根据标题将配置内容都填写完毕
- 图库分类填写语法
图库分类名字-1,图库分类名字-2
配置完后上传些图片就能看见专属你的Plog啦
添加水印
此文我就不提供oss的添加水印教程(因为搞图库实在养不起oss)
但是我另辟蹊径也做到了图片的放大拥有水印
改前端代码
进入 /.halo2/themes/theme-timeplus/templates/macro 将 photo.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>
创建一个站点
水印代码
可以在 即时设计 中快速制作一个水印图片
同时需要在同目录下放置一个名 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);
?>
修改反代配置
如果是同服务器不用担心网速问题 因为跟内网一样
if ($uri ~* ".*!sun-watermark$") {
rewrite ^ https://站点域名/image_api.php?image=$scheme://$host$uri last;
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 TryHarder_
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果