小游戏和GUI编程(5) | SVG图像格式简介

小游戏和GUI编程(5) | SVG图像格式简介

0. 问题

  • Q1: SVG 是什么的缩写?
  • Q2: SVG 是一种图像格式吗?
  • Q3: SVG 相对于其他图像格式的优点和缺点是什么?
  • Q4: 哪些工具可以查看 SVG 图像?
  • Q5: SVG 图像格式的规范是怎样的?
  • Q6: 通过写代码的方式,制作 SVG 图像?
  • Q7: 高效制作 SVG 图像, 有哪些辅助工具可以使用?
  • Q8: 怎样在 SFML 中加载 SVG 图像并显示?
  • Q9: SVG 图像怎样转为 jpg/png 图像?

1. SVG 是什么的缩写?

A1: SVG 是 Scalable Vector Graphics 的缩写。

2. SVG 是一种图像格式吗?

.svg 文件是一个 XML 语言代码文件, 是一个图像。

矢量格式将图像存储为一组点和点之间的线。数学公式决定了这些点和线的位置和形状,并在放大或缩小图像时保持它们的空间关系。

例如如下代码保存为 test.svg, 默认被浏览器打开图像并查看:

<svg version="1.1"baseProfile="full"width="300" height="200"xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" stroke="red" stroke-width="4" fill="yellow" /><circle cx="150" cy="100" r="80" fill="green" /><text x="150" y="115" font-size="16" text-anchor="middle" fill="white">RUNOOB SVG TEST</text></svg>

在这里插入图片描述

3. SVG 相对于其他图像格式的优点和缺点是什么?

SVG 相比于其他图像格式的优缺点:

优点:

  • 编辑方便, 各种文本编辑器就可以编辑
  • 文件较小, 毕竟是文本
  • 清晰度不会随着放大缩小而影响

4. 哪些工具可以查看 SVG 图像?

哪些工具可以查看 SVG 图像?

  • Edge 浏览器
  • VSCode 默认不能查看, 安装 SVG 扩展后可以预览
  • Beyond Compare: 会默认按照图像方式显示
  • KolourPaint: 会默认按照图像方式显示
  • PyCharm: 会同时显示 svg 文件的代码内容和图像内容
    在这里插入图片描述

5. SVG 图像格式的规范是怎样的?

SVG 图像格式的规范:

  • <svg> 元素开始, 以 </svg> 结束。
  • 支持预定义的形状元素: <rect>, <circle>, <ellipse>, <line>, <poliline>, <ploygon>, <path>
  • 通过对每一种形状 tag 的属性进行设置, 来得到不同的效果, e.g.
  <rect x="50" y="20" rx="20" ry="20" width="150" height="150"style="fill:red;stroke:black;stroke-width:5;opacity:0.5"/>
  • 支持滤镜
  • 支持渐变

6. 通过写代码的方式,制作 SVG 图像?

通过写代码的方式,制作 SVG 图像

已经提到过了,就是 xml 代码, 只不过 tag 以及对应的属性, 是特殊的一小撮。

7. 高效制作 SVG 图像, 有哪些辅助工具可以使用?

高效制作 SVG 图像, 有哪些辅助工具可以使用?

https://www.jyshare.com/more/svgeditor/

这个在线工具, 是用鼠标的交互方式, 让人选择形状进行组合。 然后可以查看 svg 的源代码, 也可以转为 png 等图像格式。

8. 怎样在 SFML 中加载 SVG 图像并显示?

高效制作 SVG 图像, 有哪些辅助工具可以使用?

对于通过写代码方式生成 svg 图像, 主要在于编辑后的预览。 VSCode 里搜索 svg 扩展后排名第一个的那个扩展就可以了。

请添加图片描述

对于使用鼠标交互式生成 svg 图像, 使用 InkScape.

9. SVG 图像怎样转为 jpg/png 图像?

SVG 图像怎样转为 jpg/png 图像?

VSCode 插件
VSCode 里的 SVG 插件在预览时, 最右边一个图标是导出为 png 图像。

cairosvg 命令行工具

pip install cairosvg
cairosvg test.svg -o test.png

inkscape

inkscape 是世界上最先进的交互式编辑 svg 的软件, 支持各个操作系统。 也可以查看 xml 代码:

在这里插入图片描述

在这里插入图片描述

10. 总结

svg 格式的详细规范没找到, 乍一看简单的例子, 都是 xml 代码, 比较简单现查现用也来得及。

最为非nodejs程序员, 同行用 VSCode 的 svg 扩展, 就可以编写 svg 代码变看效果了。

如果希望鼠标点一点,组合各种形状, 首推 inkscape 软件, 其次是一些在线工具如: https://www.jyshare.com/more/svgeditor/

References

  • https://www.runoob.com/svg/svg-intro.html
  • https://superuser.com/questions/134679/command-line-application-for-converting-svg-to-png-on-mac-os-x
  • https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Tools_for_SVG
  • https://inkscape.org/zh-hans/doc/tutorials/basic/tutorial-basic.html

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于JSP的网上购书系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88825694?spm1001.2014.3001.5503 Java项目-15 源码论文数据库配置文件 基于JSP的网上购书系统 摘要 在当今的社会中&#xff0c; 随着社会经济的快速发展以及计算机网络技术和通讯技术…

css2复合选择器

一.后代&#xff08;包含&#xff09;选择器&#xff08;一样的标签可以用class命名以分别&#xff09; 空格表示 全部后代 应用 二.子类选择器 >表示 只要子不要孙 应用 三.并集选择器 &#xff0c;表示 代表和 一般竖着写 应用 四.伪类选择器&#xff08;包括伪链接…

python WEB接口自动化测试之requests库详解

由于web接口自动化测试需要用到python的第三方库--requests库&#xff0c;运用requests库可以模拟发送http请求&#xff0c;再结合unittest测试框架&#xff0c;就能完成web接口自动化测试。 所以笔者今天先来总结一下requests库的用法。希望对大家&#xff08;尤其是新手&…

[C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改

问题描述 WPF中DataGrid的选中行或选中者单元格&#xff0c;在焦点失去后&#xff0c;颜色会很淡&#xff0c;很不明显&#xff0c;不容易区分。 解决方法 在失去焦点的情况下&#xff0c;如何设置行或单元格与选中的时候颜色一样&#xff1f; <DataGrid.Resources>&…

Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

博客原文 文章目录 实验环境信息编译安装获取安装包环境依赖编译安装安装 contrib 下工具代码 创建用户创建数据目录设置开机自启动启动数据库常用运维操作 apt 安装更新源安装 postgresql开机自启修改配置修改密码 实验环境信息 Ubuntu 20.04Postgre 16.1 编译安装 获取安装…

BUUCTF LKWA

1.访问页面。 2.选择 Variables variable 关卡 3.获得flag http://357dab81-78b8-4d74-976a-4a69dd894542.node5.buuoj.cn:81/variables/variable.php?funcpassthru&inputcat%2Fflagflag{0020ced6-8166-4fa5-87a7-7d93ee687c3e}

【Linux笔记】动静态库的封装和加载

一、静态库的封装 我们在学习C语言阶段其实就已经知道一个可执行程序的形成过程分为预处理、编译、汇编、链接这四个阶段&#xff0c;而且也知道我们程序中使用的各种库其实是在链接的阶段加载的。 可我们那时候并不知道库是怎么被加载的&#xff0c;或者库是怎么形成的&…

结构体的大小以及内存对齐问题

结构体的大小怎么计算&#xff1f;什么是结构体的对齐&#xff1f; 首先想要直到结构体的大小需要先了解结构体的内存对齐。那么&#xff0c;什么是结构体的内存对齐&#xff1a; 什么是结构体内存对齐 结构体的对齐 就是 结构体类型数据在内存中按照一定的对齐规律储存。结…

python+django高校活动报名场地管理系统l1ro4

校园活动管理平台程序的开发&#xff0c;在数据库的选择上面&#xff0c;选择功能强大的MySQL数据库进行数据的存放操作。 技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5…

实现自定义标记

实现自定义标记 问题陈述 New Tech Book的高级管理层决定在其用JSP设计的应用程序的所有页面上显示版权信息。它们还要去如何向应用程序中添加JSP页面,可以重用显示版本信息的代码。公司的软件开发人员Jerry Smith决定用自定义标记来创建应用程序的这一部分。 解决方案 要解…

kali最新最简单安装

之前都是用iso镜像文件的 今年好多东西都删库了&#xff0c;所有还是要主要资源的保存 去官网找下载 一般来说都是用虚拟机的 下载完会是一个压缩文件&#xff0c; 解压&#xff0c;然后操作之前需要先下载虚拟机 打开方式用虚拟机打开 kali就按装好了

腾讯云4核8G服务器可以用来干嘛?怎么收费?

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

Minecraft的红石教程之电梯

一.前言 我记得是上初中的时候&#xff0c;就看到了这类电梯。现在我在看现在这类电梯的相关视频&#xff0c;大多是盗用创意未能领会其中的红石运作规律&#xff0c;于是我就删繁就简写了这篇。 二.步骤 1.材料 粘性活塞&#xff0c;黏液块&#xff0c;红石&#xff0c;红…

考研数据结构笔记(6)

单链表的建立 单链表的建立尾插法头插法 双链表初始化插入删除遍历小结 单链表的建立 尾插法 首先对单链表进行定义&#xff0c;然后初始化 法1&#xff1a;定义遍历链表的插入函数 法2&#xff1a;利用指针移动建立函数 头插法 带头结点 双链表 初始化 插入 p节点不是最后…

【Linux】学习-基础IO—下

Linux基础IO—上 重定向 通过上篇的学习&#xff0c;我们了解了文件描述符的分配规则是遍历指针数组&#xff0c;用没有被使用的最小下标作为新的文件描述符&#xff0c;也就是我们可以通过关闭三个标准流文件并使用他们原先所占用的0&#xff0c;1&#xff0c;2描述符。 那…

【蓝桥杯Python】试题 算法训练 藏匿的刺客

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 强大的kAc建立了强大的帝国&#xff0c;但人民深受其学霸及23文化的压迫&#xff0c;于是勇敢的鹏决心反抗。   kAc帝国防守…

元素显示模式

1.块级元素 显示特点&#xff1a; 1.独占一行&#xff08;一行只能显示一个&#xff09; 宽度默认是父元素的宽度可以设置宽高 代表标签&#xff1a;div、p、h系列、ul、li、dl、dd、from、header、nav、footer...... 2.行内元素 显示特点&#xff1a; 一行可以显示多个宽…

中国判决生效,诺基亚全面与中国手机签署授权协议,降低专利费

日前媒体报道指诺基亚与中国两家手机企业都签署了专利授权协议&#xff0c;全面结束诉讼&#xff0c;而这一切正是在OPPO于去年底在重庆法院就OPPO与诺基亚的专利费诉讼问题&#xff0c;做出裁决之后&#xff0c;要求诺基亚按公平、公正等合理收费原则收取专利费。 这几年诺基亚…

HiveSQL——连续增长问题

注&#xff1a;参考文章&#xff1a; SQL连续增长问题--HQL面试题35_sql判断一个列是否连续增长-CSDN博客文章浏览阅读2.6k次&#xff0c;点赞6次&#xff0c;收藏30次。目录0 需求分析1 数据准备3 小结0 需求分析假设我们有一张订单表shop_order shop_id,order_id,order_time…

动态水印怎么加 怎么去除动态水印 视频剪辑软件 会声会影安激活序列号 会声会影怎么剪辑视频

为了防止白嫖或者增加美观效果&#xff0c;视频制作者可能会采用动态水印的方式&#xff0c;让其他人难以盗取视频使用。动态水印的添加&#xff0c;需要应用到运动路径功能。接下来&#xff0c;本文会教大家动态水印怎么加&#xff0c;怎么去除动态水印的相关内容。感兴趣的小…