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

ThreeJS-截屏下载pdf或者图片时白屏

JS-页面截图下载为pdf
关于如何下载为 pdf 在上面的这篇文章中有写,大家可以看下,下载图片代码在最下面
这时我们发现 three 部分是空白的如下:
在这里插入图片描述
这就多少有点尴尬了,这时我们习惯性的看下后台报错
在这里插入图片描述
是不是发现了惊喜,html2canvas其实已经给我报错了,而且还很贴心的给出了解决方案,我们先上代码:

renderer = new THREE.WebGLRenderer({ antialias: true,  // 启用抗锯齿功能preserveDrawingBuffer: true
});

其实就是给 WebGLRenderer 多传了一个参数,那这个是什么意思呢?请添加图片描述
官方解释:是否保留缓冲区直到手动清除或重写。默认值为false。
preserveDrawingBuffer 是一个WebGL渲染器选项,用于确定是否在多个渲染循环中保留drawing buffer。如果设置为true,则drawing buffer在多个渲染循环中会被保持,这可以提高性能,但可能会占用更多的内存。

请注意,这个选项在WebGL渲染器的默认行为中并不常用,因为通常WebGL会在每次渲染后自动清除drawing buffer。设置preserveDrawingBuffer为true可能会导致性能问题或内存问题,特别是如果你在渲染循环中不断请求帧缓存的像素数据。

下载为图片:

const downloadPDF = () => {const element: any = document.querySelector('.app');// const { scrollHeight, scrollWidth, offsetHeight, height } = element;const opts = {scale: 3, // 缩放比例,提高生成图片清晰度useCORS: true, // 允许加载跨域的图片allowTaint: false, // 允许图片跨域,和 useCORS 二者不可共同使用tainttest: true, // 检测每张图片都已经加载完成logging: true, // 日志开关,发布的时候记得改成 falseheight: element.offsetHeight};html2canvas(element, opts).then((canvas) => {const link = document.createElement('a');// 通过超链接herf属性,设置要保存到文件中的数据link.href = canvas.toDataURL("image/png");link.download = 'aaa.png'; // 下载文件名link.click(); // js代码触发超链接元素a的鼠标点击事件,开始下载文件到本地});
};

请大家注意如果 three 中有用到 CSS2DRenderer 或者 CSS3DRenderer,这个也要加

labelRenderer = new CSS2DRenderer({preserveDrawingBuffer: true
});

相关文章:

ThreeJS-截屏下载pdf或者图片时白屏

JS-页面截图下载为pdf 关于如何下载为 pdf 在上面的这篇文章中有写,大家可以看下,下载图片代码在最下面 这时我们发现 three 部分是空白的如下: 这就多少有点尴尬了,这时我们习惯性的看下后台报错 是不是发现了惊喜,…...

redis以后台的方式启动

文章目录 1、查看redis安装的目录2、Redis以后台的方式启动3、通过客户端连接redis4、连接后,测试与redis的连通性 1、查看redis安装的目录 [rootlocalhost ~]# cd /usr/local/redis/ [rootlocalhost redis]# ll 总用量 112 drwxr-xr-x. 2 root root 150 12月 6…...

力扣随机一题 哈希表 排序 数组

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2491.划分技能点相等的团队【中等】 题目: 给你一个正整数数组…...

昇思25天学习打卡营第01天|基本介绍

作为曾经的javaer,本着不断学习的初心,报名了昇思25天的课程,希望自己能学会点东西的目的。 昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,…...

问题:1、金属基复合材料界面的物理结合是指 #学习方法#媒体

问题:1、金属基复合材料界面的物理结合是指 A.与化学作用有关,既有化学键力存在,又有范德华力存在 B.是一种纯的物理作用,与化学作用无关,即无化学键力存在,但有范德华力存在 C&a…...

突发!OpenAI停止不支持国家API,7月9日开始执行

6月25日凌晨,有部分开发者收到了OpenAI的信,“根据数据显示,你的组织有来自OpenAl目前不支持的地区的API流量。从7月9日起,将采取额外措施,停止来自不在OpenAI支持的国家、地区名单上的API使用。” 但这位网友表示&am…...

大数据集群数据传输

简单的服务器间的通信示例 netcat,简写为 nc,是 unix 系统下一个强大的命令行网络通信工具,用于在两台主机之间建立 TCP 或者 UDP 连接,并提供丰富的命令进行数据通信。nc 在网络参考模型属于应用层。使用 nc 可以做很多事情&…...

css-vxe列表中ant进度条与百分比

1.vxe列表 ant进度条 <vxe-column field"actualProgress" title"进度" align"center" width"200"><template #default"{ row }"><a-progress:percent"Math.floor(row.actualProgress)"size"s…...

网络协议TCP/IP, HTTP/HTTPS介绍

TCP/IP协议 TCP/IP是一种基于连接的通信协议&#xff0c;它是互联网的基础协议。TCP代表传输控制协议&#xff0c;IP代表Internet协议。虽然这两个协议通常一起提及&#xff0c;但它们实际上是分开的&#xff1a;IP负责在网络中从一台计算机向另一台计算机发送数据包&#xff0…...

STM32高级控制定时器(STM32F103):PWM输出模式

目录 概述 1 PWM模式介绍 2 PWM类型 2.1 PWM边缘对齐模式 2.2 PWM中心对齐模式 3 使用STM32Cube配置PWM 3.1 STM32Cube配置参数 3.2 生成Project 4 设置PWM占空比 4.1 函数介绍 4.3 函数源码 5 测试代码 5.1 编写测试代码 5.2 函数源码 6 运行代码 概述 本文主…...

TikTok达人背后的品牌影响力与用户增长

TikTok独特的算法和广泛的用户基础&#xff0c;使得品牌在TikTok上的推广活动变得尤为重要。在这种背景下&#xff0c;TikTok达人合作成为品牌推广、用户增长和社交影响力的重要工具。本文Nox聚星将和大家探讨TikTok达人合作在这些方面的作用。 一、对品牌推广的作用 1. 增加…...

零撸广告创业项目:撸包小游戏对接广告联盟app开发

“撸包小游戏”APP是一款专注于小游戏的应用软件&#xff0c;它为用户提供了丰富多样的小游戏选择&#xff0c;并允许开发者通过广告变现的方式获取收益。以下是关于“撸包小游戏”APP的一些关键信息&#xff1a; 广告变现&#xff1a; 广告变现是“撸包小游戏”APP中开发者获…...

【Web3初识系列】如何连接 Binance Smart Chain通过交易对绘制 k 线?

连接 Binance Smart Chain通过交易对绘制 k 线 安装 web3 pip install web3连接到 Binance Smart Chain 使用公共的 BSC 节点 URL。 from web3 import Web3# 连接到 BSC 公共节点 bsc_url "https://bsc-dataseed.binance.org/" web3 Web3(Web3.HTTPProvider(bs…...

STM32——定时器

一、定时器简介&#xff1a; 1.最大59.65s定时&#xff1a; 因为预分频器和自动重装寄存器的最大存储值都是65536&#xff0c;当预分频器设置为65536时&#xff0c;就是当有65536个波形输入到预分频器时&#xff0c;预分频器才会输出一个波形到计数器&#xff0c;然后跟自动重装…...

[20] Opencv_CUDA应用之 关键点检测器和描述符

Opencv_CUDA应用之 关键点检测器和描述符 本节中会介绍找到局部特征的各种方法&#xff0c;也被称为关键点检测器关键点(key-point)是表征图像的特征点&#xff0c;可用于准确定义对象 1. 加速段测试特征功能检测器 FAST算法用于检测角点作为图像的关键点&#xff0c;通过对…...

支持离线翻译任意语言的桌面应用程序;单张图像高效生成高质量的 3D 模型;2500种色彩映射的集合,适用于matplotlib和seaborn

✨ 1: Lingo Lingo是一款支持离线翻译任意语言的桌面应用程序 Lingo 是一款支持离线翻译的桌面应用程序&#xff0c;用户可以在不连接互联网的情况下进行多语言翻译。这款软件利用了Meta公司提供的nllb-200-distilled-600M 多语言模型&#xff0c;以实现高效的翻译功能。 没…...

BC-Linux 8.6最小化安装的服务器启用GNOME图形化界面

本文记录了BC-Linux 8.6最小化安装的服务器如何启用GNOME图形化界面的过程。 一、服务器环境 1、系统版本 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)" ID"bclinux" ID_LIKE"rhel fe…...

数据库 复习题

有一个关系模式&#xff1a;工程关系&#xff08;工程号&#xff0c;工程名称&#xff0c;职工号&#xff0c;姓名&#xff0c;聘期&#xff0c;职务&#xff0c;小时工资率&#xff0c;工时&#xff09;&#xff0c;公司按照工时和小时工资率支付工资&#xff0c;小时工资率由…...

web前端——CSS

目录 一、css概述 二、基本语法 1.行内样式表 2.内嵌样式表 3.外部样式表 4.三者对比 三、选择器 1.常用的选择器 2. 选择器优先级 3.由高到低优先级排序 四、文本,背景,列表,伪类,透明 1.文本 2.背景 3.列表 4.伪类 5.透明 五、块级,行级,行级块标签, dis…...

STM32学习-HAL库 串口通信

学完标准库之后&#xff0c;本来想学习freertos的&#xff0c;但是看了很多教程都是移植的HAL库程序&#xff0c;这里再学习一些HAL库的内容&#xff0c;有了基础这里直接学习主要的外设。 HAL库对于串口主要有两个结构体UART_InitTypeDef和UART_HandleTypeDef&#xff0c;前者…...

告别信号盲猜!手把手教你用ESP32的Scan和iperf给家里WiFi做个‘体检’

用ESP32打造家庭WiFi信号检测仪&#xff1a;从扫描到吞吐测试全攻略 你是否遇到过在家追剧时视频卡顿、智能设备频繁掉线的困扰&#xff1f;墙角的摄像头总是连接不稳定&#xff0c;书房里的温湿度传感器数据时有时无——这些问题很可能与WiFi信号覆盖不均有关。今天我们将利用…...

GDAL:Windows环境下的高效安装与基础配置指南

1. Windows环境下GDAL安装全攻略 第一次接触GDAL时&#xff0c;我也被官网上密密麻麻的下载选项搞得头晕眼花。作为地理空间数据处理领域的"瑞士军刀"&#xff0c;GDAL确实功能强大&#xff0c;但在Windows平台上的安装过程却让不少新手望而却步。别担心&#xff0c;…...

开箱即用环境+保姆级教程:深度学习项目训练环境助你快速入门AI

开箱即用环境保姆级教程&#xff1a;深度学习项目训练环境助你快速入门AI 1. 镜像环境概述 深度学习项目训练环境镜像是一个预装了完整深度学习开发环境的解决方案&#xff0c;专为快速启动AI项目而设计。这个镜像基于深度学习项目改进与实战专栏&#xff0c;集成了训练、推理…...

在Windows上用C++部署YOLO11模型:从PyTorch训练到QT桌面应用的全流程避坑指南

工业级YOLO11模型C部署实战&#xff1a;从PyTorch到QT6.9的工程化落地指南 当Python训练的AI模型需要真正投入生产线时&#xff0c;C部署往往成为必经之路。去年在为某电子元件制造商部署电容极性检测系统时&#xff0c;我深刻体会到从Jupyter Notebook到稳定运行的Windows桌面…...

lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程

lite-avatar形象库保姆级教学&#xff1a;从CSDN控制台创建GPU实例到数字人上线全过程 桦漫AIGC集成开发 | 微信: henryhan1117 1. 开篇&#xff1a;为什么选择lite-avatar形象库&#xff1f; 如果你正在寻找高质量的数字人形象&#xff0c;但又不想从零开始训练模型&#xff…...

SillyTavern角色创建完全指南:从入门到精通

SillyTavern角色创建完全指南&#xff1a;从入门到精通 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 一、基础认知&#xff1a;揭开角色系统的面纱 1.1 什么是角色系统&#xff1f; 想…...

Qt 6.5 + DeepSeek API 流式聊天实战:手把手教你打造一个带记忆的桌面AI助手

Qt 6.5 DeepSeek API 流式聊天实战&#xff1a;打造带记忆的桌面AI助手 在当今软件开发领域&#xff0c;AI助手的集成已成为提升用户体验的重要趋势。想象一下&#xff0c;在你的代码编辑器或笔记软件中&#xff0c;有一个能理解上下文、实时响应且具备记忆能力的智能助手&…...

多语言支持测试:OpenClaw对接Qwen3-32B镜像处理非英语任务

多语言支持测试&#xff1a;OpenClaw对接Qwen3-32B镜像处理非英语任务 1. 测试背景与实验设计 最近在探索如何用本地化AI工具处理多语言工作流时&#xff0c;我注意到OpenClaw框架的灵活性——它不仅能对接各类大模型&#xff0c;还能通过技能扩展实现跨语言自动化。这次我决…...

MailHog终极指南:如何快速搭建本地邮件测试环境

MailHog终极指南&#xff1a;如何快速搭建本地邮件测试环境 【免费下载链接】MailHog Web and API based SMTP testing 项目地址: https://gitcode.com/gh_mirrors/ma/MailHog MailHog是一款基于Web和API的SMTP测试工具&#xff0c;能够帮助开发者在本地快速搭建安全高效…...

CMD脚本开发避坑指南:为什么你的bat文件总是报错?

CMD脚本开发避坑指南&#xff1a;为什么你的bat文件总是报错&#xff1f; 每次双击运行精心编写的bat文件时&#xff0c;看到那个刺眼的"不是内部或外部命令"错误提示&#xff0c;是不是感觉血压瞬间飙升&#xff1f;作为Windows系统中最基础的自动化工具&#xff0c…...