Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)

曾几何时,SVG(Scalable Vector Graphics)矢量动画图在坊间称之为一种被浏览器诅咒的技术,只因为糟糕的硬件支持(IE),和没完没了的兼容性调优(Safari)。但是在2022年的今天,一切都不一样了,正所谓三十年河东,三十年河西,微软所研发的采用Chromium内核作为IE替代者的Edge浏览器已经有望超越Safari成为第二大桌面浏览器,而曾经因为不支持关键帧动画被人诟病的Safari也统一了标准,市面上除了老帮菜IE,几乎所有平台(包括移动端)都已经对SVG足够友好,这让我们可以放心大胆的在网站上应用SVG矢量动画图。

目前国内外相对来说技术先行的平台都已经采用SVG矢量格式,比如线上媒体界的巨擘Netflix、社交平台Twitter和国内的B站:

总的来说,采用SVG格式图像的好处还是比较多的,由于 SVG 图像是矢量图像,可以无限缩放,而且在图像质量下降方面没有任何问题。为什么会这样呢?因为 SVG 图像是使用 XML 标记构建的,浏览器通过绘制每个点和线来打印它们。这确保 SVG 图像可以适应不同的屏幕大小和分辨率,传统图像格式(如 PNG、GIF 或 JPG)是通过预定义的像素来填充色彩空间,这就导致屏幕素质会对图像的成像质量产生影响。

举个例子,传统像素图片就像是食堂里已经烙好的饼,是多大就是多大,碰上胃口好的,饼不够大,就会产生影响,而SVG是通过XML技术把饼的轮廓和技术参数定义好,由浏览器实时绘制,可以根据胃口的大小自适应饼的大小,达到矢量的目的。同时,由于是在 XML 中定义的,SVG 图像比 JPG 或 PNG 图像更灵活,而且我们可以使用 CSS 和 JavaScript 与它们进行交互。另外从文件体积角度上讲,SVG并不比PNG更大,反而压缩之后体积更小,最后作为XML的网页格式,直接在浏览器中解析,所以不需要单独的带宽进行请求,节约了网络请求数,百利而无一害。

接下来的传统节目应该是介绍SVG基本语法,然后画几个不痛不痒的简单矢量图,展现一下SVG特性,最后草草了事,那样就太无趣了,本次我们来点“快餐”,简单粗暴的将PNG的Logo图像直接转化成SVG格式,略过“绘制”的步骤,五分钟内直接让你的网站Logo“芜湖起飞”。

SVG图像转化与压缩

以本站的Logo为例子,首先需要一个PNG矢量图:

注意图像颜色位数最好越小越好,这样转化后的图像不会过大,同时背景最好是透明的,因为透明元素不会被XML文件进行标记,达到节约空间的目的,这里我们以PNG仿色4位的位图为例子。

转化方式有很多种,可以通过Python3的三方图像库:

编写转化脚本test.py:

运行脚本文件:

将会直接产出同名的test.svg文件,利用vscode(安装svg预览控件)打开:

原理就是将原位图的像素进行遍历,转化成SVG的Path路径格式,每个位图元素块都会是单独的一个Path标签,如果不需要对某个单独元素块进行操作,也可以合并为一个path路径标签。

接下来,将转化好的svg文件进行压缩,压缩后体积会相应的减小,同时一些path也可以被合并,通过npm安装压缩软件svgo:

执行压缩命令,test.svg是源文件,my.svg是压缩后的文件:

得到压缩后的svg:

这里我们将多个path路径合并为一个,如果不想使用本地的代码脚本进行转化和压缩,也可以利用线上对应的网络工具,转化svg:https://www.pngtosvg.com/ 压缩svg: https://jakearchibald.github.io/svgomg/

线上转化效果和本地转化效果大同小异。

SVG交互效果

事实上,直接将上面的代码放到页面中,就可以直接使用了,这里通过指定svg的viewBox属性里面的4个坐标来标定 svg 图片的显示区域,也就是我们理解的“画布”,然后通过控制width属性来实现等比的扩大和缩小,非常方便,效果是这样的:

图片正在加载中,请稍后

除了分辨率能够适应屏幕显得更加精细,其他的地方和传统png好像没有什么不同?那么就来点不一样的吧,svg可以通过css样式来实现“动画”特效,比如描边:

这里我们为path属性加上伪类,同时通过stroke属性为logo加上一层外边框,透明度为0.2,宽度为7个像素,接着,编写关键帧动画:

页面加载时,指定 stroke-dasharray 属性进行描边的路径遍历,同时将logo本体的颜色透明度由0至1进行递增操作:

图片正在加载中,请稍后

如果觉得意犹未尽,可以利用hover属性,将鼠标对Logo进行悬停动作时再触发一遍特效:

还记得之前对于网站“暗黑模式”的实验吗?利用CSS3自定义属性来为网站添加“暗黑模式”(暗色模式/DarkMode)[1] 当时我们使用了自定义属性,切换暗黑模式的同时切换另外一张暗色的Logo达到明亮和暗黑的效果,成本就是需要一明一暗两张图片配合使用,而现在,不需要多余的图片,只需要通过简单的自定义颜色即可:

svg的fill属性可以直接渲染图片颜色:

图片正在加载中,请稍后

简单而又方便,还等什么?抛弃落伍的PNG吧。

配合滤镜,还可以打造霓虹灯特效:

图片正在加载中,请稍后

结语:“旧时王谢堂前燕,飞入寻常百姓家”,通过淘汰落后产能、上大压小、加强技术革新,我们可以利用SVG技术打造成本更低,扩展性更高的图像展示方案,何乐而不为?最后,奉上演示项目地址:https://github.com/zcxey2911/svg\_website\_logo,博君一晒。

引用链接

 利用CSS3自定义属性来为网站添加“暗黑模式”(暗色模式/DarkMode): https://v3u.cn/a_id_114

最新资讯

文档百科

猫咪五个月接回来还能亲人吗 猫咪五个月还亲近人吗?

只要主人能好好对待猫咪,多喂点好吃的给猫咪吃,多陪猫咪玩耍,猫咪会亲近人的。不同的猫咪有不同的性格,有些猫咪黏人,有些猫咪独立,但不是独立的猫就不爱主人哦。主人要摆正心态,接受自己猫咪的性格,才能和猫咪更好的相处。如果猫猫大了还是不亲近人的话,那可能是猫猫本来的性格,在猫猫时不时亲近主人的时候给它奖励,可能会有改善。

慢性脓胸的治疗

清除异物,消灭脓腔,尽可能多的保存和恢复肺功能。术前应适当补充营养,纠正低蛋白和贫血,少量多次输血,增强肌体抵抗力,选用有效抗生素,控制感染。待全身中毒症状减轻,肺恢复膨胀,脓腔缩小或闭合,脓胸可痊愈。如脓腔不能闭合消失,充分引流也是手术根治的必要准备。慢性脓胸脓液极少时,可将闭式引流管剪短,改为开放引流。

民国二十八年党徽布图壹分值多少钱 铸造历史背景

民国二十八年党徽布图壹分铸造背景以及图片介绍二十八年布图壹分红铜属流通币性质。民国二十八年党徽布图壹分最新价格:就目前的市场行情来讲,民国二十八年党徽布图壹分普通品的参考价格是在50-80元,极美品的参考价格是在250元左右的。

子宫内膜癌出血特点

子宫内膜癌让女性的身心受到伤害,影响女性子宫的健康。对于女性朋友来说,只有了解了子宫内膜癌出血特点,才能很好的预防子宫内膜癌的发生。90%的子宫内膜癌患者有阴道不规则出血史,10%在绝经后阴道有出血。子宫内膜癌主要的临床症状是不规则阴道出血。诊断根据病史、临床检查及子宫内膜病理检查等。子宫内膜癌需与下列几类疾病作鉴别。

艾得凯仰卧板怎么样

使用仰卧板等器材,会使仰卧起坐的效果更明显,那么大家知道艾得凯仰卧板怎么样吗?艾得凯仰卧板仰卧板是针对腹部训练而设计出来的一种健身器材,此健身器材让您用正确的方式,事半功倍的效果让你的小腹平坦,对于锻炼肌肉效果还是相当不错的。

蛇毒对机体的毒理作用

蛇毒中的有毒成分是蛇毒对机体产生毒理作用的物质基础。归纳起来,各种蛇毒大致有以下一些毒理作用。有促进血液凝固的作用,促使血纤维蛋白元变为纤维蛋白,形成血凝块。海蛇毒有选择性破坏横纹肌细胞的作用。必须指出,并不是每种蛇毒都具有上述全部毒理作用。例如银环蛇毒主要是对神经系统的毒害,而蝰蛇毒的主要毒性作用楚引起出血。

CopyRight © 2000~2023 一和一学习网 Inc.All Rights Reserved.
一和一学习网:让父母和孩子一起爱上学习