帝国CMS自动生成标题图片并写进数据库

帝国CMS背景可自定义,可单独背景也可以随机背景,此插件根帝国cms官方论坛帖子改的,增加了生成图片后写入数据库,笔者的古诗词网 www.gushichi.com 也是这样设置的。

效果图

将下面的代码插入到/e/class/userfun.php中增加如下函数

单独背景代码

//自动生成图片
function Cyimg($classid,$id,$width='512',$height='340',$bg='',$path='d/file/titlepic/'){
    global $dbtbpre,$empire,$class_r,$public_r;
    $bg = ECMS_PATH.'/bazhepu/images/titlepicbg.png';//背景图片存放的路径  指定一张图片
    $tbname = $class_r[$classid]['tbname'];
    $r=$empire->fetch1("select * from {$dbtbpre}ecms_{$tbname} where id='$id' limit 1");
    $mycr=GetPathname($class_r[$r['classid']]['classpath']);//栏目目录
    $classpath=$mycr[0];//获取栏目目录
    $path = $path.$classpath.$r['id'].'.png';//保存的图片名称
    $file = ECMS_PATH.$path;//图片的绝对地址
    if(!file_exists($file)){//判断图片是否存在    测试的时候把!去掉   正式使用时加上就可以了
        $font = ECMS_PATH."/bazhepu/font/PingFangMedium.ttf";//你需要的字体路径
        $myImage=imagecreatefrompng($bg);//背景图片
        $blue=imagecolorallocate($myImage, 210, 95, 50);//设置字体颜色
        $fontBox = imagettfbbox(55, 0, $font ,$r['title']);//获取文字所需的尺寸大小
        $width = ceil(($width - $fontBox[2]) / 2) + 20;//计算文字所需宽度  居中   后面加的数字表示偏移多少
        $height = ceil(($height - $fontBox[1] - $fontBox[7]) / 2) - 35;//计算文字所需高度 居中 后面加的数字表示偏移多少
        imagettftext($myImage, 48, 0, $width, $height, $blue, $font, $r['title']); //生成图片
        imagepng($myImage,$file); //保存图片
        imagedestroy($myImage);//释放内存

        // 更新数据
        $empire->query("update {$dbtbpre}ecms_{$tbname} set titlepic = '".$path."'  where id= '$id'");
    }
    return $public_r['newsurl'].$path;//返回图片路径
}

随机背景代码

function Cyimg($classid,$id,$width='512',$height='340',$bg='',$path='d/file/titlepic/'){
    global $dbtbpre,$empire,$class_r,$public_r;
    $bgnum = rand(1,9);//随机数字图片名字
    $bg = ECMS_PATH.'/bazhepu/images/'.$bgnum.'.png';//背景图片存放的路径  随机多张图片
    $tbname = $class_r[$classid]['tbname'];
    $r=$empire->fetch1("select * from {$dbtbpre}ecms_{$tbname} where id='$id' limit 1");
    $mycr=GetPathname($class_r[$r['classid']]['classpath']);//栏目目录
    $classpath=$mycr[0];//获取栏目目录
    $path = $path.$classpath.$r['id'].'.png';//保存的图片名称
    $file = ECMS_PATH.$path;//图片的绝对地址
    if(!file_exists($file)){//判断图片是否存在    测试的时候把!去掉   正式使用时加上就可以了
        $font = ECMS_PATH."/bazhepu/font/PingFangMedium.ttf";//你需要的字体路径
        $myImage=imagecreatefrompng($bg);//背景图片
        $blue=imagecolorallocate($myImage, 210, 95, 50);//设置字体颜色
        $fontBox = imagettfbbox(55, 0, $font ,$r['title']);//获取文字所需的尺寸大小
        $width = ceil(($width - $fontBox[2]) / 2) + 20;//计算文字所需宽度  居中   后面加的数字表示偏移多少
        $height = ceil(($height - $fontBox[1] - $fontBox[7]) / 2) - 35;//计算文字所需高度 居中 后面加的数字表示偏移多少
        imagettftext($myImage, 48, 0, $width, $height, $blue, $font, $r['title']); //生成图片
        imagepng($myImage,$file); //保存图片
        imagedestroy($myImage);//释放内存

        // 更新数据
        $empire->query("update {$dbtbpre}ecms_{$tbname} set titlepic = '".$path."'  where id= '$id'");
    }
    return $public_r['newsurl'].$path;//返回图片路径
}

内容页调用代码

<img src="<?=Cyimg($navinfor['classid'],$navinfor['id'])?>" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941127.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者

人工智能&#xff08;AI&#xff09;已经吸引了数据科学家、技术领导者以及任何使用数据进行商业决策者的兴趣。绝大多数企业都希望利用人工智能技术来增强洞察力和生产力&#xff0c;而对于这些企业而言&#xff0c;数据集的质量差成为了最主要的障碍。 数据源需要进行清洗且明…

java小知识点:比较器

java中自主排序主要根据一个Comparator类来实现。 他内部实现用的是Timsort策略。大概思想是说将整个集合分成几个小段&#xff0c;每个小段分别排序&#xff0c;然后再拼在一起。 主要用法是传入两个数&#xff08;也可以不是Integer或int类型&#xff0c;这里只是把他们都统称…

【嵌入式开发笔记】OpenOCD到嵌入式调试

最近在把玩一块Risc-V的开发板&#xff0c;使用开发板调试时&#xff0c;需要用到专门的下载器和OpenOCD进行调试。 为了连接这个板子&#xff0c;费了九牛二虎之力。 这里简单记录一下自己的折腾经过吧。 0x00 环境准备 0x0001 调试背景 系统&#xff1a;Virtual Box Ub…

安装MongoDB,环境配置

官网下载地址&#xff1a;MongoDB Shell Download | MongoDB 选择版本 安装 下载完成双击打开 点击mongodb-windows-x86_64-8.0.0-signed 选择安装地址 检查安装地址 安装成功 二.配置MongoDB数据库环境 1.找到安装好MongoDB的bin路径 复制bin路径 打开此电脑 -> 打开高级…

15.初识接口1 C#

这是一个用于实验接口的代码 适合初认识接口的人 【CSDN开头介绍】&#xff08;文心一言AI生成&#xff09; 在C#编程世界中&#xff0c;接口&#xff08;Interface&#xff09;扮演着至关重要的角色&#xff0c;它定义了一组方法&#xff0c;但不提供这些方法的实现。它要求所…

2.学习TypeScript 编译选项配置

自动编译 我们可以使用 tsc ...../.ts -w 命令进行ts文件的自动编译 执行后 编译会持续侦听 自动编译 这种方式只能侦听一个文件 对做项目肯定是不现实的&#xff0c;为了解决这个问题&#xff0c;我们需要添加一个tsconfig.json文件&#xff0c;写入一个基础对象 再有tsconfi…

Python爬虫(5) --爬取网页视频

文章目录 爬虫爬取视频指定url发送请求UA伪装请求页面 获取想要的数据解析定位定位音视频位置 存放视频完整代码实现总结 爬虫 Python 爬虫是一种自动化工具&#xff0c;用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持&#xff08;如 requ…

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot&#xff1a;算是“老牌”编程助手了&#xff0c;虽然Copilot在别的编辑器上也有扩展&#xff0c;不过体验最好的还是VS Code&#xff0c;毕竟都是微软家的所以功能集成更好一些&#xff1b;主要提供的是Complete和Chat能力&#xff0c;也就是代码补全…

基础元器件的学习

1、二极管 1.1二极管的符号 ZD是稳压二极管 VD、V、D是普通二极管的符号。 1.2二极管的反向恢复时间 首先交流电为上正下负&#xff0c;然后下正上负。当二极管接到反向电压&#xff0c;二极管存在寄生电容&#xff0c;电压不能立刻突变&#xff0c;当输入频率变高时&#…

unipp中使用阿里图标,以及闭坑指南

-----------------------------------------------------点赞收藏才是更新的动力------------------------------------------------- unipp中使用阿里图标 官网下载图标在项目中引入使用注意事项 官网下载图标 进入阿里图标网站 将需要下载的图标添加到购物车中 2. 直接下载…

QtCreator配置github copilot实现AI辅助编程

文章目录 1、概述2、配置环境3、演示 1、概述 新时代的浪潮早就已经来临&#xff0c;上不了船的人终将被抛弃&#xff0c;合理使用AI辅助开发、提升效率是大趋势&#xff0c;注意也不要过于依赖。 2024年12月18日&#xff0c;GitHub 官方宣布了一个激动人心的重大消息&#xf…

web实操8-cookie

会话技术 会话&#xff1a; 一次会话中包含多次请求和响应。 客户端浏览器访问服务器的资源&#xff0c;只要客户端或者服务器端不关闭&#xff0c;这始终在一次会话范围内&#xff0c;这一次会话范围内可以包含多次请求并且收到多次相应。 一次会话&#xff1a;浏览器第一…

深度学习之超分辨率算法——SRCNN

网络为基础卷积层 tensorflow 1.14 scipy 1.2.1 numpy 1.16 大概意思就是针对数据&#xff0c;我们先把图片按缩小因子照整数倍进行缩减为小图片&#xff0c;再针对小图片进行插值算法&#xff0c;获得还原后的低分辨率的图片作为标签。 main.py 配置文件 from model im…

Javaweb 在线考试系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

Qt for Python (PySide6)设置程序图标和任务栏图标

环境 使用Qt for Python开发Windows应用程序。 Python版本&#xff1a;3.12 Qt版本&#xff1a;PySide6 前言 先上一个简单的测试程序 from PySide6.QtWidgets import QMainWindow,QLabel,QApplication from PySide6 import QtGui import sysclass MainWindow(QMainWindow)…

【C#】实现Json转Lua (Json2Lua)

关键词: C#、JsonToLua、Json2Lua、对象序列化Lua 前提需引入NewtonsofJson&#xff0c;引入方法可先在Visual Studio 2019 将Newtonsoft.Json.dll文件导入Unity的Plugins下。 Json格式字符串转Lua格式字符串&#xff0c;效果如下&#xff1a; json字符串 {"1": &q…

Windows平台C++部署 vcpkg 安装protobuf + gRPC实现图像传输

vcpkg 安装 https://github.com/microsoft/vcpkg.git.\bootstrap-vcpkg.bat vcpkg --version参考&#xff1a;Windows安装vcpkg教程&#xff08;VS2022&#xff09; protocbuf 安装与编译 vcpkg install grpc:x64-windowsprotocbuf 安装与编译 vcpkg install protobuf proto…

ScottPlot学习的常用笔记-02

ScottPlot学习的常用笔记-02 写在前面Why&Target&#xff1a;这里记一些杂项。上下文&背景 先记一下这几个小时的新收获先说一下&#xff0c;为什么可开发可视工具缩放的问题ScottPlot5.0起步.net Core: WinExe.Net Framework也是可以的 写在前面 Why&Target&…

CTF_1

CTF_Show 萌新赛 1.签到题 <?php if(isset($_GET[url])){system("curl https://".$_GET[url].".ctf.show"); }else{show_source(__FILE__); }?> 和 AI 一起分析 1.if(isset($_GET[url]))检查GET请求中是否存在名为url的参数。 curl 2.curl…

【Spring】Spring框架之-AOP

目录 1. AOP的引入 2. AOP相关的概念 2.1 AOP概述 2.2 AOP的优势 2.3. AOP的底层原理--目前先不具体阐述&#xff0c;后面讲 3. Spring的AOP技术-配置文件方式 3.1 AOP相关的术语 3.2 基本准备工作 3.3 AOP配置文件方式的入门 3.4 切入点的表达式 3.5 AOP的通知类型 …