【SSD系列】网页内容生成图片,这18般武艺你会几种呢?

简介: 前端一些有意思的内容,旨在3-10分钟里, 500-1000字,有所获,又不为所累。网页截图,windows内置了快捷命令和软件,chrome开发者工具也能一键截图,html2canvas和无头浏览器都可以实现,您需要哪一种呢?

4.JPG


前言


关于【SSD系列】


前端一些有意思的内容,旨在3-10分钟里, 500-1000字,有所获,又不为所累。

网页截图,windows内置了快捷命令和软件,chrome开发者工具也能一键截图,html2canvas和无头浏览器都可以实现,您需要哪一种呢?


为了方便移动端阅读,列一个大纲:


  • windows 内置
  • window 内置快捷键截图
  • windows 内置软件截图
  • window 第三方程序
  • 聊天办公软件
  • 其他软件
  • chrome浏览器
  • chrome 开发者工具
  • chrome 插件
  • 网页内代码生成截图


windows自带


1.1 window 内置快捷键


可能很多人习惯了微信,QQ,钉钉的快捷截图,殊不知道,系统已自带。


  1. Ctrl+shift+X
    可选择截图范围。
  2. Ctrl + PrScrn
    接截取全屏
  3. Alt + PrScrn
    截取全屏


1.2 windows 内置软件


winodws10 其实自带了截图工具,你搜索 截图


1.JPG


或者cmd 输入 SnippingTool.exe, 您就可以进行截图了,体验比微信查一些,但是一种备用方案。


2.JPG


window 第三方程序


2.1 聊天办公工具


微信,QQ, 钉钉等等都自带截图功能。


2.2 其他工具


有很多,我就推荐一下 Snipaste , 可以截图多张,放在桌面上,配合 天若OCR 图片转文字,堪称完美。 别人贴的图片代码,分分钟变成文字,直接使用。


chrome浏览器



3.1 chrome 开发者工具


ctr + shift + i 唤起开发者工具,再ctr + shift + p 唤起chrome的命令程序, 如下看如下动图:


3.JPG


四种:


  1. Capture area screenshot
    选择页面某部分进行截图。
  2. Capture full size screenshot
    截页面全屏,包含可视区外的部分。
  3. Capture node screenshot
    截取某个节点的内容,需要先从Elements Tab先选中某个节点。 当你选中 body或者html节点的时候,某种程度等于Capture full size screenshot
  4. capture screenshot
    截取页面可视区部分。


3.2 chrome 插件


Awesome ScreenshotFull page Screen Capture, Webpage Screenshot 等等都是不错的网页截图插件。


更多的嘛,去谷歌应用市场,至于那个啥,我就再推荐一款免费开源的 freefq 的软件。 chrome-go和 谷谷访问助手插件也值得去试试。


基于浏览器API



其基本实现原理,一种是基于SVG,一种是基于Canvas。


4.1 基于canvas的 html2canvas


这个库,可能无人不知。 其就是将元素节点画到canvas上,然后生成截图,但是无法渲染iframe,flash等内容。


其基于Promise编写,如果低版本浏览器,自己找个垫片就好了,使用也极其简单。

下面是代码:


<h1>云的世界</h1>
    <div>看什么看,看完记得点赞</div>
    <img crossorigin="anonymous"
        src="https://sf1-ttcdn-tos.pstatp.com/img/user-avatar/f1a9f122e925aeef5e4534ff7f706729~300x300.image" />
    <div>
        <button onclick="onSnapshot()">点解截图</button>
    </div>
    <hr>
function onSnapshot() {
    html2canvas(document.body, {
        useCORS: true,  // 跨域,比如图片
        backgroundColor: null,
    }
    ).then(function (canvas) {
        document.body.appendChild(canvas);
    });
}
复制代码


效果演示:

5.JPG


其也有不少坑,最常见的就是图片丢失,方案是设置图片crossorigin="anonymous"以及设置html2canvas的选项useCORS

更多问题参见 html2canvas的踩坑之路html2canvas issues


4.2 基于SVG的 dom-to-imagerasterizeHTML.js


原理是SVGforeignObject标签可以包裹任意的html内容。

虽然提到这两个库,但是都有几年没维护和更新了,但是思路值得学习。


无头浏览器


puppeteer, PhantomJS, , SlimerJS等等无头浏览器,也具备截图的能力,puppeteer属于后起之秀, 非常看好。


puppeteer截图代码也是相当的简单:


const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });
  await browser.close();
})();
复制代码


其他


6.1 先转为pdf,pdf再导出为图片


网页打印可以将其直接导出为pdf, 当然也有很多程序可以将网页转为pdf。

比如 wkhtmltopdf

比如 python的 pdfkit。

wkhtmltopdf也是可以直接生成图片的,很强大。


6.1 搜狗浏览器,360等国产浏览器


菜单有功能选项,另存为图片
复制代码



写在最后


写作不易,你的一赞一评就是我前行的最大动力。

相关文章
|
3月前
|
Web App开发 搜索推荐 数据安全/隐私保护
|
4月前
|
数据处理 开发者 异构计算
ComfyUI+多模态LLM--手搓一个好用的视频/图片提示词反推器
今天我们把ComfyUI工具和多模态LLM结合,在魔搭的免费算力上搭建出支持单图理解,多图理解,视频理解的WebUI界面,更好的支持开发者快速搭建一个视频/图片页面打标器。
ComfyUI+多模态LLM--手搓一个好用的视频/图片提示词反推器
|
3月前
Midjourney-04 收集Prompt 百变小樱魔法卡 ClearCard 透明牌 提示词实践 Niji 5 Niji6 V6 详细记录 多种风格 附带文本关键词
Midjourney-04 收集Prompt 百变小樱魔法卡 ClearCard 透明牌 提示词实践 Niji 5 Niji6 V6 详细记录 多种风格 附带文本关键词
35 0
|
5月前
|
前端开发
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!
视觉冲击:CSS实现相册图片的放大效果,让网站首页更震撼!
|
6月前
|
机器学习/深度学习 人工智能 编解码
Midjourney应用场景、特点、生成图片带来影响
Midjourney应用场景、特点、生成图片带来影响
166 1
|
8月前
|
机器学习/深度学习 自然语言处理 语音技术
南开、字节开源StoryDiffusion让多图漫画和长视频更连贯
【5月更文挑战第13天】南开大学和字节跳动合作开发的StoryDiffusion技术,通过创新的一致性自注意力和语义运动预测器,提升了多图漫画和长视频的连贯性生成。该技术解决了内容一致性问题,增强了文本到图像的预训练模型,并在无样本情况下优化性能。虽然面临复杂运动场景的计算挑战和需针对特定任务优化,但StoryDiffusion为视觉故事生成开辟新途径,对漫画、动画和视频制作有重大影响。论文链接:[arxiv.org/pdf/2405.01434v1](https://arxiv.org/pdf/2405.01434v1)
216 3
|
编解码 人工智能 算法
社区供稿 | AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里!
本文介绍了一种全新的基于SD生成先验的图像超分辨率和修复算法,在多个任务上都有着SOTA的表现。
|
8月前
|
机器学习/深度学习 自然语言处理 搜索推荐
手机上0.2秒出图、当前速度之最,谷歌打造超快扩散模型MobileDiffusion
【2月更文挑战第17天】手机上0.2秒出图、当前速度之最,谷歌打造超快扩散模型MobileDiffusion
101 2
手机上0.2秒出图、当前速度之最,谷歌打造超快扩散模型MobileDiffusion
|
编解码 人工智能 移动开发
AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里
阿里巴巴最新自研的像素感知扩散超分模型已经开源,它把扩散模型强大的生成能力和像素级控制能力相结合,能够适应从老照片修复到AIGC图像超分的各种图像增强任务和各种图像风格,并且能够控制生成强度和增强风格。这项技术的直接应用之一是AIGC图像的后处理增强和二次生成,能够带来可观的效果提升。
922 4
|
缓存 Kubernetes API
数据缓存系列分享(三):通过 StableDiffusion 扩展插件实现网红爆款文字光影图
在文章《23秒完成从零开始搭建StableDiffusion》中我们详细讲解了通过ECI的数据缓存快速搭建StableDiffusion应用,用户通过模型网站选择好自己需要的模型,然后创建ECI数据缓存,即可快速部署自己的StableDiffusion应用。本文将基于StableDiffusion + 扩展插件 ControlNet 来完成实现网红爆款文字光影图
417 0
数据缓存系列分享(三):通过 StableDiffusion 扩展插件实现网红爆款文字光影图