• 前端常用图片格式优缺点及使用场景简述


      前置知识:二进制位数与色彩的关系

      在计算机中,像素用二进制数来表示。不同的图片格式中像素与二进制位数之间的对应关系是不同的,

      一个像素对应的二进制位数越多,它可以表示的颜色种类就越多,成像效果也就越清晰,文件体积相应也会越大

      

      JPG / JPEG

      优点

        ①:体积小

        ②:加载快

        ③:支持颜色种类多

       缺点

        ①:有损压缩

        ②:不支持透明

      使用场景

      JPG 适用于呈现色彩丰富的图片,在日常开发中,JPG 图片经常作为大的背景图、轮播图或 Banner 图出现

      注:JPEG和JPG指代同一种图片格式,前者是后者的全称,后者是简称

      PNG-8 / PNG-24

      优点

        ①:支持透明,弥补了JPG的不足

         ②:无损压缩,图片质量更高

      缺点

        ①:什么都好,就是体积太大

      使用场景

      主要用它来呈现小的 Logo 和需要透明效果的图片(比如透明背景图,透明Logo图)

      注:PNG-8和PNG-24区别在于支持色彩多少的不同。前者最多支持256种颜色,后者支持1600万种颜色

      

      GIF

      优点

        ①:体积小

        ②:支持透明

        ③:支持动图

      缺点

        ①:最多只支持256种颜色,成像效果较差

      使用场景

      主要用于需要有动画效果的图片

      SVG(矢量图形)

      优点

        ①:即使无限放大,图片依然不失真

        ②:相对于JPG和PNG,体积更小

      缺点

        ①:性能有一定影响

      使用场景

      SVG 是文本文件,我们既可以像写代码一样定义 SVG,把它写在 HTML 里、成为 DOM 的一部分,

      也可以把对图形的描述写入以 .svg 为后缀的独立文件(SVG 文件在使用上与普通图片文件无异)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <svg xmlns="http://www.w3.org/2000/svg"   width="200" height="200">
            <circle cx="50" cy="50" r="50" />
        </svg>
    </body>
    </html>

      将 SVG 写入独立文件后引入 HTML

    <img src="文件名.svg" alt="">

      补充——Base64

      前置知识:

      雪碧图(又被称为CSS Sprites、CSS 精灵、图像精灵) 

       是一种将小图标和背景图像合并到一张图片上,然后利用 CSS 的背景定位来显示其中每一部分的技术,从而减少http请求

      Base64严格意义上来说并不是一种图片格式,而是作为小图标解决方案而存在的,可以理解为是雪碧图的一种补充

      Base64 通过对图片进行编码,可以直接将编码结果写入 HTML 或者 CSS,从而减少 HTTP 请求的次数

      

      比如现在有一个放大镜图标

      

       图片路径是:https://user-gold-cdn.xitu.io/2018/9/15/165db7e94699824b?w=22&h=22&f=png&s=3680

        按照一贯思路,我们加载图片需要把图片链接写入 img 标签,然后向服务器发送请求

    <img src="https://user-gold-cdn.xitu.io/2018/9/15/165db7e94699824b?w=22&h=22&f=png&s=3680">

      但如果我们对这个图片进行 Base64 编码,会得到一个下图所示的字符串:

      

       原来浏览器是可以理解这个字符串的,它自动将这个字符串解码为一张图片,而不需再去发送 HTTP 请求

      

      

  • 相关阅读:
    scp 利用 ssh 协议 复制文件
    linux (fedora 28) 制作启动U盘,启动盘
    nc 命令使用详解
    env :让系统决定你命令的位置
    tali -f 和 tail -F 之间的区别
    斯诺克台球比赛规则 (Snooker)
    中式台球 规则 ( ChinaBilliards )
    美式九球比赛规则 (Nine-ball)
    Tmux 使用教程 on Fedora 28
    python 3.6 的 venv 模块
  • 原文地址:https://www.cnblogs.com/tu-0718/p/10091432.html
Copyright © 2020-2023  润新知