前端优化之图片

news/2024/12/23 15:43:07/

前言

除了图片压缩外图片体验技巧来优化

实现

  1. background-image
     	.pic_container {width: 300px;height: 375px;background-image: url("../assets/origin.jpg"), url("../assets/small.jpg");background-repeat: no-repeat;background-size: 100% 100%;}
    
	绘制background-image,图像以 z 方向堆叠的方式进行。原图与缩略图是叠在一起的,并且原图在上缩略图在下,两张图是在同一个位置,所以我们可以看到一个从模糊变清晰的过程。
  1. img + background-image
    使用img的话,可以使用img + background-image组合来实现。
		<div class="pic_container"><img src="../assets/origin.jpg" alt="origin" /></div><style lang="scss" scoped>.pic_container {background-image: url("../assets/small.jpg");background-repeat: no-repeat;background-size: 100% 100%;img {width: 300px;height: 375px;}}</style>
	img元素占位在图片还没开始渲染时,它在页面上实际上是透明的,所以我们能够在看到下面的背景图片等img资源加载完成开始渲染时,才会慢慢遮盖下面的背景图
  1. 渐进式图片
	本质上属于一种图片格式渐进式 JPEG  在 Web 浏览器中呈现时,会首先给出模糊图像的外观。然后一点一点地开始图片渲染,直到它显示完全渲染的图像。浏览器实际上是逐行解释图像,但在占位符中提供了完整图像的模糊预览。随着 Web 浏览器的渲染引擎处理数据,图像的对比度开始变得更清晰、更详细。直到最后渲染完毕,用户将看到完整的清晰图像。

可以使用gm工具库来生成渐进式图片

npm install gm
const gm = require('gm').subClass({ imageMagick: true });
const path = require('path');function transformImage(imagePath, transform, generatePath, callback) {gm(imagePath).interlace('Line') // 生成渐进式图片.resize(transform.width, transform.height).write(generatePath, callback);
}const basePath = path.join(__dirname, '../src/assets/');transformImage(path.join(basePath, 'sy.pic.jpg'), { width: 500, height: 500 }, path.join(basePath, 'sy.line.jpeg'), (res) => {console.log(res);}
);
	优点:1.移动网络流量优化:渐进式图片下载技术允许用户仅初始下载图片的一部分,有效降低图像分辨率并减少数据使用量,特别适用于移动网络环境。2.减少加载等待时间:渐进式图片能够让用户先快速预览图片的轮廓,随后逐步加载更多图片细节,提升用户体验。缺点:1.图片格式转换成本:由于大多数现有图片采用普通压缩格式,转换为渐进式格式需要额外的处理成本。2.兼容性:部分老旧浏览器(例如IE8)对渐进式图片格式的支持不足,尽管随着时间推移,这些浏览器将逐渐被市场淘汰,但当前仍可能影响部分用户的浏览体验。

http://www.ppmy.cn/news/1557500.html

相关文章

MFC/C++学习系列之简单记录——序列化机制

MFC/C学习系列之简单记录——序列化机制 前言简述六大机制序列化机制使用反序列化总结 前言 MFC有六大机制&#xff0c;分别是程序启动机制、窗口创建机制、动态创建机制、运行时类信息机制、消息映射机制、序列化机制。 简述六大机制 程序启动机制&#xff1a;全局的应用程序…

[创业之路-199]:《华为战略管理法-DSTE实战体系》- 3 - 价值转移理论与利润区理论

目录 一、价值转移理论 1.1. 什么是价值&#xff1f; 1.2. 什么价值创造 &#xff08;1&#xff09;、定义 &#xff08;2&#xff09;、影响价值创造的因素 &#xff08;3&#xff09;、价值创造的三个过程 &#xff08;4&#xff09;、价值创造的实践 &#xff08;5&…

15.初识接口1 C#

这是一个用于实验接口的代码 适合初认识接口的人 【CSDN开头介绍】&#xff08;文心一言AI生成&#xff09; 在C#编程世界中&#xff0c;接口&#xff08;Interface&#xff09;扮演着至关重要的角色&#xff0c;它定义了一组方法&#xff0c;但不提供这些方法的实现。它要求所…

THM:Skynet[WriteUP]

目录 连接至THM服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用nmap对137端口进行针对性扫描 使用enum4lin…

docker--压缩镜像和加载镜像

压缩指令 压缩单个镜像 docker save -o myapp_latest.tar image_name:tag 压缩多个镜像到同一个文件 docker save -o multiple_images.tar iamge1_name:tag1 image2_name:tag2 压缩选项 -o: 代表 "output"&#xff08;输出&#xff09;。当你想要将一个 Docker 镜…

linux 中文输入法设置的宏观思路 (****)

乱是永远的不乱,变是永远的不变。 $ ibus help # 注意:help 前没有杠符号 $ setxkbmap -help # 注意:help 前只有一个杠符号 $ localectl --help # 注意:help 前有 2 个杠符号 $ man im-config # 注意:-h, --help 只出来提示信息:请参考。。。。。。。 $ man abc…

打通全网SEO优化:提高百度、B站、抖音等平台搜索排名

SEO&#xff08;搜索引擎优化&#xff09;已经不仅仅局限于传统的搜索引擎&#xff0c;它涵盖了多个内容平台、电商平台、社交媒体等。要想在这些平台上获得更多的曝光&#xff0c;提升品牌知名度&#xff0c;获取精准流量&#xff0c;必须采用全网SEO优化策略。如何打通全网SE…

MySQL InnoDB 存储引擎 Redo Log(重做日志)详解

1 Redo Log 的作用与重要性 Redo Log 是 InnoDB 存储引擎中用于实现事务持久性和崩溃恢复的关键组件。它的主要功能是记录对数据库页&#xff08;page&#xff09;所做的物理修改&#xff0c;确保即使在系统崩溃的情况下&#xff0c;已经提交的事务也不会丢失&#xff0c;并且可…