SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C("World Wide Web ConSortium" 即 " 国际互联网标准组织")在2000年8月制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。

图片的数字化。将图片存储为数据有两种方案。其一为位图,也被称为光栅图。即是以自然的光学的眼光将图片看成在平面上密集排布的点的集合。每个点发出的光有独立的频率和强度,反映在视觉上,就是颜色和亮度。这些信息有不同的编码方案,在互联网上最常见的就是RGB。根据需要,编码后的信息可以有不同的位(bit)数——位深。位数越高,颜色越清晰,对比度越高;占用的空间也越大。另一项决定位图的精细度的是其中点的数量。一个位图文件就是所有构成其的点的数据的集合,它的大小自然就等于点数乘以位深。位图格式是一个庞大的家族,包括常见的JPEG/JPG, GIF, TIFF, PNG, BMP。

第二种方案为矢量图。它用抽象的视角看待图形,记录其中展示的模式而不是各个点的原始数据。它将图片看成各个“对象”的组合,用曲线记录对象的轮廓,用某种颜色的模式描述对象内部的图案(如用梯度描述渐变色)。比如一张留影,被看成各个人物和背景中各种景物的组合。这种更高级的视角,正是人类看世界时在意识里的反映。矢量图格式有CGM, SVG, AI (Adobe Illustrator), CDR (CorelDRAW), PDF, SWF, VML等等。

矢量图中简单的几何图形,只需要几个特征数值,就可以确定。比如三角形,只需要确定三个顶点的坐标。圆只需要确定圆心的坐标和半径。描述它的函数已知的曲线也只需要几个参数就能够确定。如正弦曲线、各种螺线等等。如果用位图记录这些几何图案,则需要包含组成线条的各个像素的数据。除了大大节省空间,矢量图还具有完美的伸缩性。因为记录的是图形的特征,图形的尺寸任意变化时,都只是做着相似变换,不会出现模糊和失真。相反位图的图片放大到超出原有大小时,各个像素点之间出现空缺,即使用某种算法填充,也会出现模糊锯齿等现象,不如矢量图精确。因而矢量图很适合用于记录诸如符号、图标等简单的图形。而位图则适合于没有明显规律的、颜色丰富细腻的图片。

SVG 有一些预定义的形状元素,可被开发者使用和操作:

矩形

圆形

椭圆

线

折线

多边形

路径

什么是SVG?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

SVG 用来定义用于网络的基于矢量的图形

SVG 使用 XML 格式定义图形

SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失

SVG 是万维网联盟的标准

SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

Canvas 和 SVG 的区别:

SVG

SVG 是一种使用 XML 描述 2D 图形的语言。

SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

特点:

不依赖分辨率

支持事件处理器

最适合带有大型渲染区域的应用程序(比如谷歌地图)

复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

不适合游戏应用

Canvas

Canvas 通过 JavaScript 来绘制 2D 图形。

Canvas 是逐像素进行渲染的。

在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

特点:

依赖分辨率

不支持事件处理器

弱的文本渲染能力

能够以 .png 或 .jpg 格式保存结果图像

最适合图像密集型的游戏,其中的许多对象会被频繁重绘

新西兰

图标字体:

使用字体图标的优势

字体图标除了图像清晰度之外,比位图还有哪些优势呢。

适用性:一个图标字体比一系列的图像(特别是在Retina屏中使用双倍大小的图像)要小。一旦图标字体加载了,你的图标就会马上渲染出来,不需要下载一个图像。

可扩展性:图标字体可以用过font-size属性设置其任何大小。这使您能够随时输出不同大小的图标,然而,使用位图,你必须得为每个不同大小的图像输出一个不同文件。

灵活性:文字效果可以很容易地应用到你的图标上,包括颜色,阴影和翻转等效果。他们还可以在任何背景下显示。

兼容性:网页字体支持所有现代浏览器,包括IE低版本。

弊端:

1、浏览器将其视为文字进行抗锯齿优化,有时得到的效果并没有想象中那么锐利。 尤其是在不同系统下对文字进行抗锯齿的算法不同,可能会导致显示效果不同。

2、Icon Font 作为一种字体,Icon 显示的大小和位置可能要受到font-size、line-height、word-spacing等等 CSS 属性的影响。 Icon 所在容器的 CSS 样式可能对 Icon 的位置产生影响,调整起来很不方便。

3、使用上存在不便。首先,加载一个包含数百图标的 Icon Font,却只使用其中几个图标,非常浪费加载时间。 如果是自己制作 Icon Font 以及把多个 Icon Font 中用到的图标整合成一个 Font 也非常不方便。当然使用阿里UX矢量图标库可以解决这个问题

4、为了实现最大程度的浏览器支持,可能要提供至少四种不同类型的字体文件。包括TTF、WOFF、EOT 以及一个使用 SVG 格式定义的字体。如果是自己制作的话,可能要头疼死

参考:

java fx svg 图像 缩放 控件_SVG(可缩放矢量图形)相关推荐

  1. java fx svg 图像 缩放 控件,支持调整SVG图像大小!Aspose.Imaging v19.11新功能示例演示!...

    Aspose.Imaging for .NET一种高级图像处理控件,允许开发人员创建,编辑,绘制或转换图像.图像导出和转换是API核心功能之一,它允许在不安装Photoshop应用程序或任何其他图像编 ...

  2. android缩放组件,Android控件实现图片缩放功能

    1 简介 先来一张效果图 TIM图片.gif 上图中灰色的一块是ImageView控件,ImageView中的图片进行左右上下移动,以及双指缩放. 对于android控件的缩放移动,点这里----an ...

  3. 移动开发----PhotoView 图片浏览缩放控件

    PhotoView 图片浏览缩放控件 和普通的ImageView一样的使用方法 如使用过程中有任何bug,意见或建议,可邮件给我 bmme@vip.qq.com 下载地址:https://github ...

  4. 一行CSS样式去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字

    /*去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字*/ .anchorBL, .BMap_zlHolder {display: none;visibility: hidden;}

  5. 多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址

    多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电 ...

  6. iOS UI-UIScrollView控件实现图片缩放功能

    一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理.也就是说,要完成缩放功能的话,只需要将需要缩 ...

  7. 获取WebView缩放控件,并对其进行改造

    2019独角兽企业重金招聘Python工程师标准>>> 今日遇一需求,要求在WebView的缩放空间中加入一个按钮用以实现全屏功能,结合网上查找的资料,实现了这个功能,共享出来. 改 ...

  8. 防止HALCON刷新图像窗口控件闪烁

    防止HALCON刷新图像窗口控件闪烁 在其它编程环境下防止图形窗口刷新闪烁的办法是设置双缓冲区域,在HALCON下同样可以采用双缓冲方法. 设置双缓冲防止刷新图像窗口闪烁方法: 1)采用Open_Wi ...

  9. Android百度地图SDK:隐藏比例尺,隐藏百度LOGO,隐藏缩放控件

     Android百度地图SDK:隐藏(不显示)比例尺,隐藏(不显示)百度LOGO,隐藏(不显示)缩放控件 在自己的Android应用开发中使用百度地图SDK,百度会自动在MapView上添加百度的 ...

最新文章

  1. 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了...
  2. 【Robot学院】一文读懂世界智能制造大趋势!
  3. 数字图像处理——第四章 频率域图像增强
  4. 7个GIF动图帮你瞬间理解三角函数
  5. 网络基础:收集必备的网络基础知识
  6. ASP.Net防范XSS漏洞攻击的利器HtmlSanitizer
  7. JAVA入门级教学之(赋值运算符)
  8. 高时空损耗的Scanner会卡爆程序(记洛谷P1567的Java性能优化,Java语言描述)
  9. 【学习笔记】【C语言】进制
  10. SpringBoot 2.0 系列005 --启动实战之SpringApplication应用
  11. win10 oracle fonts,win10字体无法粘贴到fonts怎么办 字体无法粘贴到fonts的解决方法...
  12. 2019年1月1日起,电商法实施、电子证照“国标”正式发布
  13. VirtualBox 0X00000000指令引用的0X00000000内存该内存不能为written
  14. JDK8中Lambda 表达式语法糖脱糖[非原创]
  15. 第二章 MATLAB数据与矩阵
  16. RAID 磁盘阵列与阵列卡
  17. 瓜瓜的时空旅行,第三次模拟赛,dfs序+线段树维护最小值
  18. Seq2Seq基本原理
  19. Android视频直播源码开发直播平台、点播播放器哪家强?
  20. 大写汉字转阿拉伯数字c语言,阿拉伯数字转换成中文大写数字

热门文章

  1. 浏览器精确定位 调用高德地图定位
  2. html有序列表加斜线,Markdown语法
  3. 【哈佛学习力12:学习生态】
  4. 2023最新阿里、腾讯、华为、字节等大厂的薪资和职级对比
  5. python安装aliyuncli报错Command python setup.py egg_info failed with error code 1 in C:\Users\***
  6. 《惢客创业日记》2019.07.22(周一)医生如何证明诚信?
  7. 监听App安装、卸载的系统广播
  8. 2018腾讯产品实习群面
  9. 数学建模之相关性分析2
  10. 如何用iphone导出网易云音乐的办法步骤