如何将 svg 画布保存到本地文件系统

2023-11-22

有没有办法允许用户在使用浏览器在 javascript svg 画布上创建矢量图之后,将此文件下载到本地文件系统?

SVG 对我来说是一个全新的领域,所以如果我的措辞不准确,请耐心等待。


您可以避免往返服务器。

对 SVG xml 进行 Base64 编码。

然后生成该数据的链接。用户可以右键单击将其保存到本地。

// This example was created using Protovis & jQuery
// Base64 provided by http://www.webtoolkit.info/javascript-base64.html
// Modern web browsers have a builtin function to this as well 'btoa'
function encode_as_img_and_link(){
 // Add some critical information
 $("svg").attr({ version: '1.1' , xmlns:"http://www.w3.org/2000/svg"});

 var svg = $("#chart-canvas").html();
 var b64 = Base64.encode(svg); // or use btoa if supported

 // Works in recent Webkit(Chrome)
 $("body").append($("<img src='data:image/svg+xml;base64,\n"+b64+"' alt='file.svg'/>"));

 // Works in Firefox 3.6 and Webit and possibly any browser which supports the data-uri
 $("body").append($("<a href-lang='image/svg+xml' href='data:image/svg+xml;base64,\n"+b64+"' title='file.svg'>Download</a>"));
}

img 标签在 Webkit 中工作,该链接在 Webkit 和 Firefox 中工作,并且可以在任何支持的浏览器中工作data-uri

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 svg 画布保存到本地文件系统 的相关文章

  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 我可以动态创建/销毁 Vue 组件吗?

    因此 我正在创建一个相当复杂的 Vue 应用程序 它从后端 API 获取数据并将其显示在前端 具体取决于用户选择的过滤器 它的默认设置是立即显示所有内容 然后一旦用户选择过滤器 它就会拉出不具有这些属性的 卡片 组件 直到今天 一切都很顺利
  • 我如何使用 querySelector() 选择具有双类的元素

    当我想使用 querySelector 选择元素时遇到问题 ul class xoxo blogroll ul 我怎样才能选择它ul元素 在我的代码中我像这样使用 var list document body querySelector u
  • JavaScript - 无需布尔值即可运行一次

    有没有办法只运行一段JavaScript代码ONCE 而不使用布尔标志变量来记住它是否已经运行过 具体来说not就像是 var alreadyRan false function runOnce if alreadyRan return a
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 如何在 Sequelize ORM 中限制连接行(多对多关联)?

    Sequelize 定义了两种模型 具有多对多关联的 Post 和 Tag Post belongsToMany db Tag through post tag foreignKey post id timestamps false Tag
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 在 setInterval / setTimeout 中使用变量作为时间[重复]

    这个问题在这里已经有答案了 这是一个示例情况 var count time 1000 setInterval function count 1 time 上面的代码会将 count 变量加 1 即 1000 毫秒 看来 setInterva
  • 游戏手柄 JavaScript 未能按预期更新

    我正在尝试让浏览器报告我的 XBOX 控制器的状态 然而 在第一次按下按钮后 它似乎变得 卡住 我究竟做错了什么
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 弹出窗口的动态高度取决于内容,可能吗?

    是否有可能获得一个宽度始终为 400px 的弹出窗口 但根据弹出窗口中的内容动态高度 我已经看到了这个 但不知道如何将其应用到弹出窗口 调整 iframe 的宽度高度以适应其中的内容 https stackoverflow com ques
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • ReactJs 警告:不推荐使用改变“style”。考虑事先克隆它

    我收到以下警告 inWarning div was passed a style object that has previously been mutated Mutating style is deprecated Consider c
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 重新编译后 Mex 函数未更新

    我有一个简单的 mex 函数 它从库中调用另一个 C 函数 我编译源代码 mex cxx mymexfunction cpp I some include L some lib lmylib mylib 库是动态的 so 并且自身与其他一些
  • 在列表中移动项目?

    在Python中 如何将项目移动到列表中的确定索引 Use the insert列表方法 l list l insert index item 或者 您可以使用切片表示法 l index index item 如果要将列表中已有的项目移动到
  • Typescript:将函数添加到 moment.js 命名空间

    我正在尝试向 moment js 库添加额外的功能 我想添加一个函数 它本身需要在其主体中调用 moment 但我很难弄清楚这一点 我正在使用最新版本的 Typescript 和 moment js 我试图找到解决方案 但一无所获 这个解决
  • wxPython:如何找出哪个小部件具有焦点?

    我如何找出我的中的哪个小部件wx Frame有重点吗 您应该能够使用 Window 类的静态FindFocus 方法返回具有焦点的对象 api http www wxpython org docs api wx Window class h
  • 为什么C++中同时存在结构体和类?

    据我们所知 struct and class在语言中的许多地方可以互换 令人困惑的是 关键字本身不一定对应于标准中使用的语言 例如 在标准草案 N4567 class 10 中 A POD struct109 is a non union
  • 如何使 JPA OneToOne 关系变得懒惰

    在我们正在开发的这个应用程序中 我们注意到视图特别慢 我分析了视图并注意到 hibernate 执行了一个查询 即使数据库中只有两个对象需要获取 该查询也花费了 10 秒 全部OneToMany and ManyToMany关系很懒惰 所以
  • MSSQL JDBC 驱动程序在首次连接时不会连接到镜像故障转移伙伴

    我使用 C3P0 和 MS SQL JDBC 4 驱动程序在数据库消失时自动故障转移到新的数据库镜像 如果它首先连接到主数据库 则故障转移将起作用并无缝切换到镜像数据库 但是 如果应用程序启动时主体数据库已关闭 而镜像数据库可连接 使用 M
  • 从匹配正则表达式的结果中删除最后一个字符

    我正在尝试在 jmeter 测试中提取 html 的一部分 我需要从 a 中提取一部分
  • 如何修复用户控件中的闪烁

    在我的应用程序中 我不断地从一个控件移动到另一个控件 我已经创建了没有 用户控件 但在导航过程中我的控件会闪烁 更新需要 1 或 2 秒 我尝试设置这个 SetStyle ControlStyles OptimizedDoubleBuffe
  • 尝试通过 ACTION_OPEN_DOCUMENT 对自定义 DocumentsProvider 采用 PersistableUriPermission() 失败

    我正在尝试写一个自定义DocumentsProvider允许其他应用对其提供的 Uris 获取持久权限 我有一个DocumentsProvider我在我的声明中声明AndroidManufest xml如下
  • 实体框架 MySQL tinyint(1) System.Boolean.Parse FormatException

    我在用着实体框架6在我的 C 中模型优先项目使用了MySQL 数据库 一切都很好 我可以毫无问题地生成数据库 然后我修改了我的 edmx使用设计器创建文件 这里开始解决我遇到的问题 首先设计师没有更新CSDL内容和C S映射内容 edmx
  • 使用 CSS 断词

    当文本输入 p 标签太长 看起来像这样 如何用CSS来防止这种情况 我尝试过 CSS 属性word break break all 但 Firefox 和 Opera 不支持此属性 除此之外其他 正常 单词也被破坏 所以我只想打破很长的单词
  • 更改 Makefile 标志时如何强制重新编译?

    我正在编译一些具有依赖关系的项目 因此我不必每次都重新编译 但是当我将 Dsome flags 添加到 CFLAGS 时 它不会重新编译 dep CPPS CC CFLAGS INC M CPPS gt dep 我添加到我的 CFLAS D
  • 有没有办法参数化cloudformation资源名称?

    我正在尝试使云形成模板上的 AutoScalingGroup 名称动态化 我在想这是否可以通过参数或其他方式实现 DynamicASGName Type AWS AutoScaling AutoScalingGroup Properties
  • gfortran 找不到那里的库

    我在将程序链接到库时遇到问题 我以前从未这样做过 所以我可能做了一些愚蠢的事情 但据我所知 我正在做正确的事情 我需要链接我的程序foo f90去图书馆libbar a它位于我的主目录下的其他目录中 我输入命令 gfortran c foo
  • 连接 String 和 Int 以形成文件名前缀

    我正在使用 PowerShell 为目录中的多个文件创建重命名脚本 这里有两个问题 我有一个字符串变量 strPrefix ACV 100 和一个整数计数器 intInc 000001我希望增加计数器 intInc1 gt 2 然后将两者连
  • 用于地理数据项目的数据可视化工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我对数据可视化的整个想法还很陌生 所以我希望人们能为我指明有效工具的方向 以解决我遇到的问题 我有很多数字数据 它们是计数 这些数据与具有两个字母的
  • 使用 jackson json 将属性添加到 json 字符串

    我将 json 字符串存储到 mysql 的文本字段中 插入后 我想更新我的 json 字符串并使用 jackson json 将 mysql 行 id 添加到其中 我有一个 Json 格式的 java 字符串 thing val 我希望在
  • 如何配置 Wildfly 来提供静态内容(如图像)?

    我有一个在 Wildfly 8 0 0 Final 上运行的 JavaEE 应用程序 该应用程序使用了很多图像 我不想将它们存储在数据库中 因此它们被写入硬盘 例如 如何配置 Wildfly Undertow 以便在某个 URL 上提供这些
  • 如何将 svg 画布保存到本地文件系统

    有没有办法允许用户在使用浏览器在 javascript svg 画布上创建矢量图之后 将此文件下载到本地文件系统 SVG 对我来说是一个全新的领域 所以如果我的措辞不准确 请耐心等待 您可以避免往返服务器 对 SVG xml 进行 Base