当前位置: 首页 > news >正文

PHP 生成分享海报

因为用户端有多个平台,如果做分享海报生成,需要三端都来做,工作量比较大。

所以这个艰巨的任务就光荣的交给后端了。经过一定时间的研究和调试,最终圆满完成了任务,生成分享海报图片实现笔记如下。

目录

准备字体文件

准备海报的图片素材

创建图片

调用

海报截图

总结


准备字体文件

字体文件需与设计图字体保持一致,所以需要下载使用相同的字体文件,否则效果肯定

不符合设计。这里实现使用的是阿里普惠体,下载到项目静态文件路径中,以备调用。

字体文件如下:

准备海报的图片素材

在真实的业务中,海报所需的图片素材来自于活动、商品、用户、小程序码,直接去准备相应的素材即可。在demo中使用了固定的图片素材。

如下:

创建图片

创建图片使用了PHP语言GD库的画图函数。

为方便调用和修改,已经将参数和最终方法进行了封装调用。

具体代码如下:

// 字体
const FONT = '/font/AlibabaPuHuiTi-3-55-Regular.ttf';
const FILEPATH = './test.png';/*** 获取字体全路径* @return string*/
function getFont()
{return dirname(__FILE__) . FONT;
}/*** 生成活动分享海报*/
function activity_poster()
{// 使用参数$param = ['id'            =>  1,  //活动id'title'         =>  '活动标题活动标题活动标题', //活动标题'text'          =>  '活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述', // 活动描述'member_nick'   =>  '一个高尚的人,一个脱落了低级趣味的人', // 团长昵称'member_image'  =>  './img/head.png', // 团长头像'createTime'    =>  date('m/d H:i:s', time()), // 分享时间'cover'         =>  './img/big.png', // 封面图片'mini_logo_img' =>  './img/qr.png', // 小程序码'price'         =>  100,'mini_bg'       =>  './img/min_bg.png'];$refer_qrcode_logo = createPoster($param);if (file_exists($refer_qrcode_logo)) {echo FILEPATH;die;} else {echo '创建失败';}
}/*** 创建海报* @param $param* @return string*/
function createPoster($param)
{$font = getFont();// 存储图片路径$refer_qrcode_logo = FILEPATH;// 判断是否已生成海报if (!file_exists($refer_qrcode_logo)) {// 创建一个白色背景图$back_width = 530;$back_height = 1000;$t_logo2 = imagecreatetruecolor($back_width, $back_height);$background2 = imagecolorallocate($t_logo2, 255, 255, 255);imagefill($t_logo2, 0, 0, $background2);// 定义边距$left = 30;$top = 26;$textcolor = imagecolorallocate($t_logo2, 24, 24, 24);$textcolor2 = imagecolorallocate($t_logo2, 189, 189, 189);$textcolor3 = imagecolorallocate($t_logo2, 165, 165, 165);$textRed = imagecolorallocate($t_logo2, 254, 48, 49);// 团长头像$head_width = 64;$head_height = 64;$member_image = imagecreatefromstring(file_get_contents($param['member_image']));$source_info = getimagesize($param['member_image']);imagecopyresampled($t_logo2, $member_image, $left, $top, 0, 0, $head_width, $head_height, $source_info[0], $source_info[1]);// 团长昵称$nick_x = 106;$nick_y = 56;// 昵称过长处理$member_nick = $param['member_nick'];if (mb_strlen($member_nick) > 12) {$member_nick = mb_substr($member_nick, 0, 12) . '...';}imagefttext($t_logo2, 20, 0, $nick_x, $nick_y, $textcolor, $font, mb_convert_encoding($member_nick, 'html-entities', 'UTF-8'));// 分享时间$time_x = 106;$time_y = 85;imagefttext($t_logo2, 18, 0, $time_x, $time_y, $textcolor2, $font, mb_convert_encoding($param['createTime'], 'html-entities', 'UTF-8'));// 封面$cover_width = 470;$cover_height = 516;$cover_y = 110;$logo = imagecreatefromstring(file_get_contents($param['cover']));$source_info = getimagesize($param['cover']);imagecopyresampled($t_logo2, $logo, $left, $cover_y, 0, 0, $cover_width, $cover_height, $source_info[0], $source_info[1]);// 活动标题$y = 642;$line_split = 5;$goods_name_size = 30;$title_width = $back_width - ($left * 2);// 换行处理$text_array = draw_txt_to(array('fontsize' => $goods_name_size, 'width' => $title_width, 'left' => 0), $param['title']);foreach ($text_array as $text) {$y += $goods_name_size + $line_split;imagefttext($t_logo2, $goods_name_size, 0, $left, $y, $textcolor, $font, mb_convert_encoding($text, 'html-entities', 'UTF-8'));}// 活动描述$y += 20;$line_split = 5;$goods_name_size = 18;$desc_width = $back_width - ($left * 2);// 换行处理if ($param['text']) {$text_array = draw_txt_to(array('fontsize' => $goods_name_size, 'width' => $desc_width, 'left' => 0), $param['text']);foreach ($text_array as $text) {$y += $goods_name_size + $line_split;imagefttext($t_logo2, $goods_name_size, 0, $left, $y, $textcolor3, $font, mb_convert_encoding($text, 'html-entities', 'UTF-8'));}}// 价格$goods_name_size = 28;$priceY = $back_height - $goods_name_size - 61 - 40;$text = '¥' . $param['price'];imagefttext($t_logo2, $goods_name_size, 0, $left, $priceY, $textRed, $font, mb_convert_encoding($text, 'html-entities', 'UTF-8'));// 二维码$logo_size = 200;$logo_x = 314;$logo_y = $back_height - $logo_size - 15;$logo = imagecreatefromstring(file_get_contents($param['mini_logo_img']));$source_info = getimagesize($param['mini_logo_img']);imagecopyresampled($t_logo2, $logo, $logo_x, $logo_y, 0, 0, $logo_size, $logo_size, $source_info[0], $source_info[1]);/*$text = '长按识别小程序 跟团购买';$goods_name_size = 10;$left_top = $y + ($logo_size - $goods_name_size * 2);imagefttext($t_logo2, $goods_name_size, 0, $left, $left_top, $textcolor2, $font, mb_convert_encoding($text, 'html-entities', 'UTF-8'));*/// 长按识别小程序 跟团购买$text_x = 274;$text_y = 46;$left_top = $back_height - $text_y - 57;$mini_bg = imagecreatefromstring(file_get_contents($param['mini_bg']));$source_info = getimagesize($param['mini_bg']);imagecopyresampled($t_logo2, $mini_bg, $left, $left_top, 0, 0, $text_x, $text_y, $source_info[0], $source_info[1]);imagepng($t_logo2, $refer_qrcode_logo);}return $refer_qrcode_logo;
}/*** 分行处理* @param $pos* @param $string* @param $line* @return array*/
function draw_txt_to($pos, $string, $line = 2)
{$font = getFont();$_string = '';$__string = array();for ($i = 0; $i < mb_strlen($string, 'utf-8'); $i++) {$box = imagettfbbox($pos['fontsize'], 0, $font, $_string);$_string_length = $box[2] - $box[0];$box = imagettfbbox($pos['fontsize'], 0, $font, mb_substr($string, $i, 1, 'utf-8'));if ($_string_length + $box[2] - $box[0] < ($pos['width'] - $pos['left'])) {$_string .= mb_substr($string, $i, 1, 'utf-8');} else {if (count($__string) >= ($line - 1)) {$_string = mb_substr($_string, 0, mb_strlen($_string, 'utf-8') - 1, 'utf-8') . '...';break;}$pos['left'] = 0;$__string[] = $_string;$_string = mb_substr($string, $i, 1, 'utf-8');}}$__string[] = $_string;return $__string;
}

调用

activity_poster();

海报截图

总结

使用GD库函数,首先创建画布,然后根据画布大小定位加载其他内容。

不同效果可参考上方代码来调整实现。

相关文章:

PHP 生成分享海报

因为用户端有多个平台&#xff0c;如果做分享海报生成&#xff0c;需要三端都来做&#xff0c;工作量比较大。 所以这个艰巨的任务就光荣的交给后端了。经过一定时间的研究和调试&#xff0c;最终圆满完成了任务&#xff0c;生成分享海报图片实现笔记如下。 目录 准备字体文件…...

A050-基于spring boot物流管理系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

【docker】8. 镜像仓库实战

综合实战一&#xff1a;搭建一个 nginx 服务 Web 服务器 Web 服务器&#xff0c;一般是指“网站服务器”&#xff0c;是指驻留于互联网上某种类型计算机的程序。Web 服务器可以向 Web 浏览器等客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界浏览&#xf…...

基于Springboot在线招投标系统【附源码】

基于Springboot在线招投标系统 效果如下&#xff1a; 系统主页面 系统登陆页面 招标人信息管理页面 招标信息管理页面 招标信息页面 评标信息页面 中标信息页面 研究背景 随着互联网技术的不断发展&#xff0c;传统的招投标方式已经无法满足现代企业的需求。传统的招投标流程…...

elasticsearch集群部署及加密通讯

原文地址&#xff1a;elasticsearch集群部署及加密通讯 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 第零步&#xff0c;准备 给各台设备配置虚拟主机名&#xff0c;这样集群不依赖IP&#xff0c;即使IP变动&#xff0c;改动也更方便。参考…...

yolov5的pt模型转化为rk3588的rknn,并在rk3588上调用api进行前向推理

当使用yolov5进行目标检测且进行边缘计算的场景时&#xff0c;要考虑性价比或者国产化的话&#xff0c;rk3588板子是个不错的选择。 本篇介绍yolov5的pytorch模型转化为rknn的流程&#xff0c;并展示在rk板子上如何调用相关api来使用转好的rknn模型进行前向推理。 pt转rknn流程…...

【机器学习】—PCA(主成分分析)

主成分分析&#xff08;PCA&#xff09;详解 引言 主成分分析&#xff08;PCA&#xff09;是一种统计方法&#xff0c;它可以通过正交变换将一组可能相关的变量转换为一组线性不相关的变量&#xff0c;这些变量称为主成分。PCA经常用于降维&#xff0c;数据压缩&#xff0c;以…...

【Linux】vim

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 一、Linux开发工具 &#x1f31f;vim的基本概念 二、Linux编译器-gcc/g使用 &#x1f31f;gcc如何完成&#xff08;ESc - iso&#xff09; 1、预处理&#xff08;进行宏替换&#xff…...

virtualbox给Ubuntu22创建共享文件夹

1.在windows上的操作&#xff0c;创建共享文件夹Share 2.Ubuntu22上的操作&#xff0c;创建共享文件夹LinuxShare 3.在virtualbox虚拟机设置里&#xff0c;设置共享文件夹 共享文件夹路径&#xff1a;选择Windows系统中你需要共享的文件夹 共享文件夹名称&#xff1a;挂载至wi…...

SQLModel与FastAPI结合:构建用户增删改查接口

SQLModel简介 SQLModel是一个现代化的Python库&#xff0c;旨在简化与数据库的交互。它结合了Pydantic和SQLAlchemy的优势&#xff0c;使得定义数据模型、进行数据验证和与数据库交互变得更加直观和高效。SQLModel由FastAPI的创始人Sebastin Ramrez开发&#xff0c;专为与FastA…...

数据库日志

MySQL中有哪些日志 1&#xff0c;redo log重做日志 redo log是物理机日志&#xff0c;因为它记录的是对数据页的物理修改&#xff0c;而不是SQL语句。 作用是确保事务的持久性&#xff0c;redo log日志记录事务执行后的状态&#xff0c;用来恢复未写入 data file的已提交事务…...

力扣第 71 题 简化路径

一、题目描述 给定一个字符串 path&#xff0c;表示一个由目录名和斜杠 "/" 组成的绝对路径&#xff0c;请简化该路径&#xff0c;使其变为规范路径。 在 Unix 风格的文件系统中&#xff1a; 一个点 "." 表示当前目录本身&#xff1b;两个点 "..&q…...

Android 性能优化:内存优化(理论篇)

内存作为App程序运行最重要的资源之一&#xff0c;需要运行过程中做到合理的资源分配与回收&#xff0c;不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏&#xff0c;重则导致用户应用程序发生 OOM&#xff08;out of memory&#xff09;崩溃。喜马直播随着近些年的业…...

Flink四大基石之窗口(Window)使用详解

目录 一、引言 二、为什么需要 Window 三、Window 的控制属性 窗口的长度&#xff08;大小&#xff09; 窗口的间隔 四、Flink 窗口应用代码结构 是否分组 Keyed Window --键控窗 Non-Keyed Window 核心操作流程 五、Window 的生命周期 分配阶段 触发计算 六、Wi…...

Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能

目录 Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能需求原型&#xff1a;相关数据&#xff1a;要导出的对象字段postman 格式导出对象VO 自定义批注拦截器业务代码&#xff1a; 拦截器代码解释&#xff1a;详细解释&#xff1a;格式优化&#xff1a; Easy Excel…...

PHP 去掉特殊不可见字符 “\u200e“

描述 最近在排查网站业务时&#xff0c;发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F‎】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 &#xf…...

Flume和kafka的整合:使用Flume将日志数据抽取到Kafka中

文章目录 1、Kafka作为Source【数据进入到kafka中&#xff0c;抽取出来】2、kafka作为Sink 【数据从别的地方抽取到kafka里面】 1、Kafka作为Source【数据进入到kafka中&#xff0c;抽取出来】 kafka源 --> memory --> 控制台&#xff1a; a1.sources r1 a1.sinks k1…...

Flutter:启动屏逻辑处理02:启动页

启动屏启动之后&#xff0c;制作一个启动页面 新建splash&#xff1a;view 视图中只有一张图片sliding.png就是我们的启动图 import package:flutter/material.dart; import package:get/get.dart; import index.dart; class SplashPage extends GetView<SplashController…...

【MySQL】自动刷新flush privileges命令

在 MySQL 中&#xff0c;执行 FLUSH PRIVILEGES 命令的主要作用是使权限表中的更改立即生效。下面是关于这个命令的一些关键点&#xff1a; 1. 什么是 FLUSH PRIVILEGES 当你使用 SET PASSWORD 或其他 SQL 语句直接修改了用户的密码或权限&#xff08;例如&#xff0c;使用 U…...

2024免费天气接口(无废话版)

免费接口1&#xff1a;http://t.weather.sojson.com/api/weather/city/101030100 免费接口2&#xff1a;http://t.weather.itboy.net/api/weather/city/101030100 至于后面那个城市编码 请自行查询&#xff1a;如图 注意&#xff01;&#xff01;&#xff01; 点击下载时 可能…...

fpga 时序分析基础

目录 触发器的动态参数 同步时序电路分析 1. 时钟脉冲的特性 2. 同步时序电路分析 Timing Analyzer的应用 异步时序与亚稳态问题 时序分析就是对时序电路进行时序检查&#xff0c;通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间…...

Laravel8.5+微信小程序实现京东商城秒杀方案

一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案&#xff08;3种&#xff09; 下单减库存 优点是库存和订单的强一致性&#xff0c;商品不会卖超&#xff0c;但是可能导致恶意下单&#xff…...

Git——本地仓库链接并推送到多个远程仓库

步骤 1. 新建仓库init 或 删除已有仓库远程链接 // 1.新建init git init// 2.已有仓库&#xff0c;查看链接的远程仓库 git remote -v// 3.已有远程连接仓库&#xff0c;需要删除连接 git remote rm origin(或对应远程仓库名) 2.新建远程仓库 在gitee、github等托管平台创建…...

llama-factory 系列教程 (七),Qwen2.5-7B-Instruct 模型微调与vllm部署详细流程实战

文章目录 介绍llama-factory 安装装包下载模型 微调模型数据集训练模型 微调后的模型推理 介绍 时隔已久的 llama-factory 系列教程更新了。本篇文章是第七篇&#xff0c;之前的六篇&#xff0c;大家酌情选看即可。 因为llama-factory进行了更新&#xff0c;我前面几篇文章的实…...

Spring Boot的理解

一、什么是Spring Boot? Spring Boot是一个用于构建基于Spring框架的应用程序的开源框架。它简化了Spring应用程序的开发过程&#xff0c;使开发者能够更容易地创建独立运行的、生产级别的Spring应用程序。Spring Boot提供了许多功能和约定&#xff0c;可以帮助开发者快速搭建…...

QT QFormLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...

系统性能定时监控PythonLinux

系统性能定时监控 1.系统监控概述 ⽤Python来编写脚本简化⽇常的运维⼯作是Python的⼀个重要⽤途。在Linux下&#xff0c;有许多系统命令可以让我们时刻监控系统运⾏的状态&#xff0c;如 ps &#xff0c; top &#xff0c; free 等等。要获取这些系统信息&#xff0c;Python…...

python学习——列表的相关操作

在 Python 中&#xff0c;列表&#xff08;list&#xff09;是一种非常灵活的数据结构&#xff0c;可以用来存储一系列的元素。以下是列表的一些常见操作&#xff1a; 文章目录 创建列表访问元素修改元素列表切片添加元素删除元素列表推导式其他操作pop基本用法指定索引使用场…...

HTML CSS 魔法秀:打造翻转卡片登录注册页面

这段 HTML 和 CSS 代码创建了一个具有翻转卡片效果的登录和注册页面。下面是对重点标签和 CSS 样式的解释和总结&#xff1a; 一键复制 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"…...

Web day04 SpringBoot

目录 1.Spring概念&#xff1a; 2. spring程序快速入门&#xff1a; 3.HTTP协议&#xff1a; 特点&#xff1a; 基于TCP 协议&#xff1a; 基于请求响应模型&#xff1a; HTTP协议是无状态协议&#xff1a; 请求协议&#xff1a;为浏览器向服务器发出的消息 获取请求数据…...

selinux和防火墙实验

1 、 selinux 的说明 SELinux 是 Security-Enhanced Linux 的缩写&#xff0c;意思是安全强化的 linux 。 SELinux 主要由美国国家安全局&#xff08; NSA &#xff09;开发&#xff0c;当初开发的目的是为了避免资源的误用。 系统资源都是通过程序进行访问的&#xff0c;如…...

ClamAV 在 CentOS 的开发版本 `clamav-devel`

是的&#xff0c;ClamAV 在 CentOS 上有开发版本&#xff08;通常称为 clamav-devel&#xff09;&#xff0c;它包含了开发 ClamAV 应用程序所需的头文件和库文件。以下是如何在 CentOS 上安装 ClamAV 及其开发版本的步骤。 ### 1. **安装 EPEL 仓库** ClamAV 通常在 EPEL&am…...

C++《二叉搜索树》

在初阶数据结构中我学习了树基础的概念以及了解了顺序结构的二叉树——堆和链式结构二叉树该如何实现&#xff0c;那么接下来我们将进一步的学习二叉树&#xff0c;在此会先后学习到二叉搜索树、AVL树、红黑树&#xff1b;通过这些的学习将让我们更易于理解后面set、map、哈希等…...

⭐️ GitHub Star 数量前十的工作流项目

文章开始前&#xff0c;我们先做个小调查&#xff1a;在日常工作中&#xff0c;你会使用自动化工作流工具吗&#xff1f;&#x1f64b; 事实上&#xff0c;工作流工具已经变成了提升效率的关键。其实在此之前我们已经写过一篇博客&#xff0c;跟大家分享五个好用的工作流工具。…...

uni-app中的样式尺寸单位,px,rpx,vh,vw

uni-app 支持less、sass、scss、stylus等预处理器。 尺寸单位 uni-app 支持的通用 css 单位包括 px、rpx px 即屏幕像素rpx 即响应式 px&#xff0c;一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准&#xff0c;**750rpx 恰好为屏幕宽度。**屏幕变宽&#xff0c;r…...

跳表(Skip List)

跳表&#xff08;Skip List&#xff09; 跳表是一种用于快速查找、插入和删除的概率型数据结构&#xff0c;通常用于替代平衡二叉搜索树&#xff08;如 AVL 树或红黑树&#xff09;。跳表通过在有序链表的基础上增加多层索引&#xff0c;使得查找操作的平均时间复杂度降低&…...

103.【C语言】数据结构之建堆的时间复杂度分析

1.向下调整的时间复杂度 推导 设树高为h 发现如下规律 按最坏的情况考虑(即调整次数最多) 第1层,有个节点,最多向上调整h-1次 第2层,有个节点,最多向上调整h-2次 第3层,有个节点,最多向上调整h-3次 第4层,有个节点,最多向上调整h-4次 ... 第h-1层,有个节点,最多向上调整1次 第…...

数字信号处理实验报告四:IIR数字滤波器设计及软件实现

1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)…...

Flutter:encrypt插件 AES加密处理

1、pubspec.yaml导入插件 cupertino_icons: ^1.0.8 # 密码加密 encrypt: 5.0.3encrypt封装 import package:encrypt/encrypt.dart; /// 加密类 class EncryptUtil {static final EncryptUtil _instance EncryptUtil._internal();factory EncryptUtil() > _instance;Encrypt…...

软银集团孙正义再度加码OpenAI,近屿智能专注AI人才培养

11月28日凌晨&#xff0c;全球最大财经CNBC报道&#xff0c;软银集团创始人兼CEO孙正义再次向人工智能领域的领军企业OpenAI投资了15亿美元。软银对OpenAI的投资已不是首次。就在上个月&#xff0c;软银已在OpenAI的上一轮融资中注入了5亿美元的资金。但他一直寻求获得OpenAI更…...

windows11下的Ubuntu(WSL)中安装界面测试ROS

症状&#xff1a;我在WSL(Ubuntu)中我自己的用户名下面安装好了ROS,输入命令行能用&#xff0c;就是不弹出窗口。 首先到windows应用商店安装Ubuntu,我这里安装的是20.04,然后安装对应的ROS&#xff08;Noetic版本&#xff09;. 然后windows安装VcXsrv. Ubuntu安装xfce4。 …...

Stable Diffusion 3详解

&#x1f33a;系列文章推荐&#x1f33a; 扩散模型系列文章正在持续的更新&#xff0c;更新节奏如下&#xff0c;先更新SD模型讲解&#xff0c;再更新相关的微调方法文章&#xff0c;敬请期待&#xff01;&#xff01;&#xff01;&#xff08;本文及其之前的文章均已更新&…...

【CSS】设置文本超出N行省略

文章目录 基本使用 这种方法主要是针对Webkit浏览器&#xff0c;因此可能在一些非Chrome浏览器中不适用。 基本使用 例如&#xff1a;设置文本超出两行显示省略号。 核心代码&#xff1a; .ellipsis-multiline {display: -webkit-box; -webkit-box-orient: vertical; /* 设置…...

Python绘画:蛋糕

Python绘画&#xff1a;蛋糕 &#x1f438; 前言 &#x1f438;&#x1f40b; 效果图 &#x1f40b;&#x1f409; 代码 &#x1f409; &#x1f335;&#x1f332;&#x1f333;&#x1f334;&#x1f33f;&#x1f340;☘️&#x1f331;&#x1f343;&#x1f38b;&#x1f…...

使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden.

问题描述 使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)… 101.6.15.130, 2402:f000:1:400::2 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15…...

道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开

道可云元宇宙每日简报&#xff08;2024年11月27日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 工信部等十二部门印发《5G规模化应用“扬帆”行动升级方案》 11月25日&#xff0c;工业和信息化部等十二部门印发《5G规模化应用“扬帆”行动升级方案》。《方案》…...

web安全之信息收集

在信息收集中,最主要是就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息,目标网站系统,CMS指纹,目标网站真实IP,开放端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。 1.1收集域名信息 知道目标的域名之后,获取域名的注册信…...

Google Earth Engine APP(GEE) ——基于多种机器学习多源遥感不同变量组合下的森林地表生物量模型预测APP

目录 Arguments: Returns: ui.Select Arguments: Returns: ui.Chart Arguments: Returns: ui.Chart Arguments: Returns: Classifier Arguments: Returns: Classifier Arguments: Returns: Classifier 本代码的主要功能是将我们提前准备好的森林生物量样本点上传到…...

Redis开发02:redis.windows-service.conf 默认配置文件解析与注解

文件位置&#xff1a;redis安装目录下的 redis.windows-service.conf &#xff0c;存放了redis服务的相关配置&#xff0c;下面列举出默认配置的含义&#xff1a; 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址&#xff0c;意味着只能从本地连接 Redis。protected-m…...

webrtc 3A移植以及实时处理

文章目录 前言一、交叉编译1.Pulse Audio webrtc-audio-processing2.交叉编译 二、基于alsa进行实时3A处理1.demo源码2.注意项3.效果展示 总结 前言 由于工作需要&#xff0c;硬件3A中的AEC效果实在太差&#xff0c;后面使用SpeexDSP的软3A&#xff0c;效果依旧不是很好&#…...