zoukankan      html  css  js  c++  java
  • 前端性能优化-静态资源优化1-图片

    本文地址: https://www.cnblogs.com/veinyin/p/14274238.html

    1 图片格式及应用场景

    1. jpeg

    栅格图,有损压缩图形格式,常用于存储和传输照片

    适用:颜色丰富的照片、焦点图、banner图、结构不规则的图片

    不适用:线条图、文字、图形图标,因为压缩算法不是很支持这类图形,也不支持透明度

    2. png

    栅格图,无损压缩的位图图形格式,支持索引、灰度、RGB、alpha 通道(png24 - 24位彩色图像,png8 - 8位灰度图像)

    适用:纯色、透明、线条绘图、图标;边缘清晰、有大块相同颜色区域;颜色数少但需要半透明

    3. GIF

    位图图形格式,8位色(256 种),采用 LZW 压缩算法编码,只支持完全透明和完全不透明

    适用:动画、图标

    不适用:彩色图片,因为每像素只有8比特

    4. webp

    现代图像格式,可有损压缩(比 jpeg 小 25-34%)和无损压缩(比 png 小 26%),在一定程度上同时保证图像质量和文件体积,支持动画和透明度,采用 8 位压缩算法

    适用:图形、半透明图像

    不适用:彩色图片,因为最多处理 256 色

    2 优化

    1. 图片压缩

    png:node-pngquant-native,跨平台,压缩比高,压缩 png24 非常好

    jpegtran -copy none -optimize -outfile out.jpg in.jpg

    jpg:jpegtran,跨平台,可压缩 10% 左右(10k -> 9k) 

    gifsicle --optimize=3 -o out.gif in.gif # 压缩,优化级别要 >= 2,因为 1 基本不压缩
    gifsicle --optimize=3 --crop-transparency -o out.gif in.gif # 截去透明部分

    2. 图片尺寸随网络环境变化

    在不同网络环境下(3G/4G/WiFi)加载不同尺寸和像素的图片,通过在图片 URL 后缀加不同参数实现

    3. 响应式图片

    • JS 绑定事件检测窗口大小
    • CSS 媒体查询
    • img 标签属性 srcset 是 H5 属性,自动适配,src 是不支持 srcset 时的备用选项
    <img srcset="img-320.jpg, img-640.jpg 2x, img-960.jpg 3x" src="img-960.jpg" alt="">
    

    4. 逐步加载图像

    • 使用统一占位符(每一张图后面都加上一个展位图片,如公司 logo 等)
    • 使用 LQIP (low quality image placeholders 低质量图像占位符)

        npm install lqip

    • 使用 SQIP (svg quality image placeholders 基于 SVG 的图像占位符)

      npm install sqip

    5. 使用其他格式

    • web font 代替图片(小图标、业务图片)

    • data URI 代替图片(base64)

    • 雪碧图(减少请求)

    6. 图片服务器自动优化

    就是在图片 URL 链接上,拼接不同的特殊请求参数,服务器自动生成不同大小、质量、格式的图片

    有如下处理方式:

    • 图片裁剪。按横边、短边、填充、拉伸等方式
    • 图片格式转换。JPG、GIF、PNG、WEBP 等,支持不同图片压缩率
    • 图片处理。添加水印、高斯模糊、重心处理、裁剪边框等
    • AI 能力。鉴黄、智能抠图、智能排版、智能配色、智能合成等

     

  • 相关阅读:
    win10 UWP button
    内网分享资源
    内网分享资源
    CF724F Uniformly Branched Trees
    win10 UWP FlipView
    win10 UWP FlipView
    win10 UWP FlipView
    搭建阿里云 centos mysql tomcat jdk
    搭建阿里云 centos mysql tomcat jdk
    win10 UWP 申请微软开发者
  • 原文地址:https://www.cnblogs.com/veinyin/p/14274238.html
Copyright © 2011-2022 走看看