广告
返回顶部
首页 > 资讯 > 前端开发 > html >web图片替换的方法是什么
  • 494
分享到

web图片替换的方法是什么

2024-04-02 19:04:59 494人浏览 独家记忆
摘要

这篇文章主要介绍“WEB图片替换的方法是什么”,在日常操作中,相信很多人在web图片替换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web图片替换的方法是什么”

这篇文章主要介绍“WEB图片替换的方法是什么”,在日常操作中,相信很多人在web图片替换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web图片替换的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

准备工作

本文再次从对网页的分析开始。使用 Firefox 内置的截图功能来对整个页面进行截图。你还需要用 sudo 来安装 Inkscape:

$ sudo dnf install inkscape

如果你想了解 Inkscape 的用法,Fedora 杂志上有几篇现成的文章。本文仅会介绍一些基本的 SVG 优化方法以供 Web 使用。

分析

我们再来用 getfedora.org 的网页来举例。

web图片替换的方法是什么

Getfedora 的页面,对其中的图片做了标记

这次分析以图形方式完成更好,这也就是它从屏幕截图开始的原因。上面的截图标记了页面中的所有图形元素。Fedora 网站团队已经针对两种情况措施(也有可能是四种,这样更好)来替换图像了。社交媒体的图标变成了字体的字形,而语言选择器变成了 SVG.

我们有几个可以替换的选择:

html5 Canvas

简单来说,HTML5 Canvas 是一种 HTML 元素,它允许你借助脚本语言(通常是  javascript)在上面绘图,不过它现在还没有被广泛使用。因为它可以使用脚本语言来绘制,所以这个元素也可以用来做动画。这里有一些使用  HTML Canvas 实现的实例,比如三角形模式、动态波浪和字体动画。不过,在这种情况下,似乎这也不是***的选择。

CSS3

使用层叠式样式表,你可以绘制图形,甚至可以让它们动起来。CSS 常被用来绘制按钮等元素。然而,使用 CSS 绘制的更复杂的图形通常只能在技术演示页面中看到。这是因为使用视觉来制作图形依然要比使用代码来的更快一些。

字体

另外一种方式是使用字体来装饰网页,Fontawesome 在这方面很流行。比如,在这个例子中你可以使用字体来替换“Flavor”和“Spin”的图标。这种方法有一个负面影响,但解决起来很容易,我们会在本系列的下一部分中来介绍。

SVG

这种图形格式已经存在了很长时间,而且它总是在浏览器中被使用。有很长一段时间并非所有浏览器都支持它,不过现在这已经成为历史了。所以,本例中图形替换的***方法是使用 SVG.

为网页优化 SVG

优化 SVG 以供互联网使用,需要几个步骤。

SVG 是一种 XML 方言。它用节点来描述圆形、矩形或文本路径等组件。每个节点都是一个 XML 元素。为了保证代码简洁,SVG 应该包含尽可能少的元素。

我们选用的 SVG 实例是带有一个咖啡杯的圆形图标。你有三种选项来用 SVG 描述它。

一个圆形元素,上面有一个咖啡杯
<circlestyle="opacity:1;fill:#717d82;fill-opacity:1;stroke:none;stroke-width:9.51950836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"id="path46"cx="68.414307"cy="130.71523"r="3.7620001" />
一个圆形路径,上面有一个咖啡杯
<pathstyle="opacity:1;fill:#717d82;fill-opacity:1;stroke:none;stroke-width:1.60968435;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"d="m 68.414044,126.95318 a 3.7618673,3.7618673 0 0 0 -3.76153,3.76204 3.7618673,3.7618673 0 0 0 3.76153,3.76205 3.7618673,3.7618673 0 0 0 3.76206,-3.76205 3.7618673,3.7618673 0 0 0 -3.76206,-3.76204 z"id="path30" />
单一路径
<pathstyle="opacity:1;fill:#717d82;fill-opacity:1;stroke:none;stroke-width:1.60968435;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"d="m 68.414044,126.95318 a 3.7618673,3.7618673 0 0 0 -3.76153,3.76204 3.7618673,3.7618673 0 0 0 3.76153,3.76205 3.7618673,3.7618673 0 0 0 3.76206,-3.76205 3.7618673,3.7618673 0 0 0 -3.76206,-3.76204 z m -1.21542,0.92656 h 2.40554 c 0.0913,0.21025 0.18256,0.42071 0.27387,0.63097 h 0.47284 v 0.60099 h -0.17984 l -0.1664,1.05989 h 0.24961 l -0.34779,1.96267 -0.21238,-0.003 -0.22326,1.41955 h -2.12492 l -0.22429,-1.41955 -0.22479,0.003 -0.34829,-1.96267 h 0.26304 l -0.16692,-1.05989 h -0.1669 v -0.60099 h 0.44752 c 0.0913,-0.21026 0.18206,-0.42072 0.27336,-0.63097 z m 0.12608,0.19068 c -0.0614,0.14155 -0.12351,0.28323 -0.185,0.42478 h 2.52336 c -0.0614,-0.14155 -0.12248,-0.28323 -0.18397,-0.42478 z m -0.65524,0.63097 v 0.21911 l 0.0594,5.2e-4 h 3.35844 l 0.0724,-5.2e-4 v -0.21911 z m 0.16846,0.41083 0.1669,1.05937 h 2.80603 l 0.16693,-1.05937 -1.57046,0.008 z m -0.061,1.25057 0.27956,1.5782 1.34411,-0.0145 1.34567,0.0145 0.28059,-1.5782 z m 1.62367,1.75441 -1.08519,0.0124 0.19325,1.2299 h 1.79835 l 0.19328,-1.2299 z"id="path3714"inkscape:connector-curvature="0" />

你应该可以看出,代码变得越来越复杂,需要更多的字符来描述它。当然,文件中包含更多的字符,就会导致更大的尺寸。

节点清理

如果你在 Inkscape 中打开了实例 SVG 按下 F2,就会激活一个节点工具。你应该看到这样的界面:

web图片替换的方法是什么

Inkscape - 激活节点工具

这个例子中有五个不必要的节点&mdash;&mdash;就是直线中间的那些。要删除它们,你可以使用已激活的节点工具依次选中它们,并按下 Del 键。然后,选中这条线的定义节点,并使用工具栏的工具把它们重新做成角。

web图片替换的方法是什么

Inkscape - 将节点变成角的工具

如果不修复这些角,我们还有方法可以定义这条曲线,这条曲线会被保存,也就会增加文件体积。你可以手动清理这些节点,因为它无法有效的自动完成。现在,你已经为下一阶段做好了准备。

使用“另存为”功能,并选择“优化的 SVG”。这会弹出一个窗口,你可以在里面选择移除或保留哪些成分。

web图片替换的方法是什么

Inkscape - “另存为”“优化的 SVG”

虽然这个 SVG 实例很小,但它还是从 3.2KB 减小到了 920 字节,不到原有的三分之一。

回到 getfedora 的页面:页面主要部分的背景中的灰色沃罗诺伊图,在经过本系列***篇文章中的优化处理之后,从原先的 211.12 KB 减小到了 164.1 KB.

页面中导出的原始 SVG 有 1.9 MB 大小。经过这些 SVG 优化步骤后,它只有 500.4 KB 了。太大了?好吧,现在的蓝色背景的体积是 564.98 KB。SVG 和 PNG 之间只有很小的差别。

压缩文件
$ ls -lhinsgesamt 928K-rw-r--r--. 1 user user 161K 19. Feb 19:44 grey-pattern.png-rw-rw-r--. 1 user user 160K 18. Feb 12:23 grey-pattern.png.gz-rw-r--r--. 1 user user 489K 19. Feb 19:43 greyscale-pattern-opti.svg-rw-rw-r--. 1 user user 112K 19. Feb 19:05 greyscale-pattern-opti.svg.gz

这是我为可视化这个主题所做的一个小测试的输出。你可能应该看到光栅图形&mdash;&mdash;PNG&mdash;&mdash;已经被压缩,不能再被压缩了。而 SVG,它是一个 XML 文件正相反。它是文本文件,所以可被压缩至原来的四分之一不到。因此,现在它的体积要比 PNG 小 50 KB 左右。

现代浏览器可以以原生方式处理压缩文件。所以,许多 Web 服务器都打开了 mod_deflate (Apache) 和 gzip (Nginx) 模式。这样我们就可以在传输过程中节省空间。你可以在这儿看看你的服务器是不是启用了它。

生产工具

首先,没有人希望每次都要用 Inkscape 来优化 SVG. 你可以在命令行中脱离 GUI 来运行 Inkscape,但你找不到选项来将 Inkscape SVG 转换成优化的 SVG. 用这种方式只能导出光栅图像。但是我们替代品:

  • SVGo (看起来开发过程已经不活跃了)

  • Scour

本例中我们使用 scour 来进行优化。先来安装它:

$ sudo dnf install scour

要想自动优化 SVG 文件,请运行 scour,就像这样:

[user@localhost ]$ scour INPUT.svg OUTPUT.svg -p 3 --create-groups --renderer-workaround --strip-xml-prolog --remove-descriptive-elements --enable-comment-stripping --disable-embed-rasters --no-line-breaks --enable-id-stripping --shorten-ids

这就是第二部分的结尾了。在这部分中你应该学会了如何将光栅图像替换成 SVG,并对它进行优化以供使用。

到此,关于“web图片替换的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: web图片替换的方法是什么

本文链接: https://www.lsjlt.com/news/85727.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • web图片替换的方法是什么
    这篇文章主要介绍“web图片替换的方法是什么”,在日常操作中,相信很多人在web图片替换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web图片替换的方法是什么”...
    99+
    2022-10-19
  • web图片居中处理的方法是什么
    这篇文章主要讲解了“web图片居中处理的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web图片居中处理的方法是什么”吧!我们在日常使用移动APP的时候,特别是一些资讯类的APP,...
    99+
    2023-06-03
  • wps图片转换文字的方法是什么
    WPS文字软件有OCR(光学字符识别)功能,可以将图片中的文字转换成文本。具体步骤如下:1. 打开WPS文字软件,选择“插入”菜单中...
    99+
    2023-06-05
    图片转换文字
  • javascript替换网址的方法是什么
    这篇“javascript替换网址的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“javascript替换网址的方...
    99+
    2023-07-06
  • php循环替换的方法是什么
    这篇文章主要介绍“php循环替换的方法是什么”,在日常操作中,相信很多人在php循环替换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php循环替换的方法是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-25
  • html正则替换的方法是什么
    本文小编为大家详细介绍“html正则替换的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“html正则替换的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。HTML正则替换HTML是现代网页设计...
    99+
    2023-07-06
  • python一键替换的方法是什么
    Python中可以使用`str.replace()`方法来实现一键替换。该方法用于将字符串中的指定子字符串替换为另一个子字符串。其语...
    99+
    2023-08-31
    python
  • PDF图片转换成文字的方法是什么
    要将PDF中的图片转换为文字,可以使用OCR技术。OCR是光学字符识别的缩写,它可以将图片中的文字识别出来并转换为可编辑的文本。现在...
    99+
    2023-06-06
    图片转换成文字
  • 一个新的CSS图片替换的技巧方法教程
    这篇文章主要讲解了“一个新的CSS图片替换的技巧方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一个新的CSS图片替换的技巧方法教程”吧!-9999 px的形象替代技术已经流行了一个十...
    99+
    2023-06-08
  • string占位符替换的方法是什么
    在Python中,可以使用字符串的format()方法来进行占位符替换。具体方法如下所示:1. 使用大括号{}作为占位符,表示需要被...
    99+
    2023-10-18
    string
  • linux字符串替换的方法是什么
    在Linux中,你可以使用多个命令和工具来进行字符串替换,以下是其中一些常见的方法:1. 使用sed命令:sed是一种流编辑器,可以...
    99+
    2023-09-16
    linux
  • Golang中的替换操作方法是什么
    本篇内容介绍了“Golang中的替换操作方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Golang的字符串动态变量Golang 的...
    99+
    2023-07-05
  • Node.js读写文件之批量替换图片的实现方法
    问题:文件夹A中有大量图片文件,需要用另外一个图片替换掉A中图片,但是命名保持不变。 手工的做法如下: 1)浏览器打开图片->2)另存为->3)目标文件夹->4)找到一个图片->5)...
    99+
    2022-06-04
    批量 文件 方法
  • mybatis动态替换表名的方法是什么
    MyBatis提供了动态替换表名的方法,可以使用动态SQL来实现。下面是使用动态SQL替换表名的步骤:1. 在Mapper XML文...
    99+
    2023-09-29
    mybatis
  • ubuntu中vim替换字符的方法是什么
    这篇“ubuntu中vim替换字符的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ubuntu中vim替换字符的方...
    99+
    2023-07-04
  • oracle批量替换数据的方法是什么
    Oracle数据库中批量替换数据的方法可以通过以下几种方式实现:1. 使用UPDATE语句:可以使用UPDATE语句来批量替换数据。例如,可以使用WHERE子句指定一个条件来选择要更新的数据,然后使用SET子句指定要替换...
    99+
    2023-08-11
    oracle
  • Oracle RAC迁移替换OCR盘的方法是什么
    这篇文章主要介绍“Oracle RAC迁移替换OCR盘的方法是什么”,在日常操作中,相信很多人在Oracle RAC迁移替换OCR盘的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2022-11-30
    oracle
  • JavaScript字符串子串替换的方法是什么
    这篇文章主要介绍“JavaScript字符串子串替换的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript字符串子串替换的方法是什么”文章能帮助大家解决问题。一、JavaSc...
    99+
    2023-07-06
  • win10批量替换文件名的方法是什么
    在Windows 10中,可以使用PowerShell或命令提示符(CMD)来批量替换文件名。以下是使用这两种方法的步骤:使用Pow...
    99+
    2023-09-28
    win10
  • ckeditor上传图片的方法是什么
    CKEditor 提供了多种方法来上传图片。以下是其中的一些方法: 使用服务器端脚本:将图片上传到服务器并返回图片的 URL。通过...
    99+
    2023-10-23
    ckeditor
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作