当前位置: 首页 > news >正文

图像优化篇

目录

    • (1)矢量图
    • (2)位图
        • 2.1 分辨率
  • 2,图像格式
    • 格式选择建议:

(1)矢量图

被定义为一个对象,包括颜色,大小,形状,以及屏幕位置等属性,

矢量图的优点: 能够在任何缩放比例下呈现出细节同样清晰的展示效果。

矢量图的缺点:对细节的展示效果不够丰富,对足够复杂的图像来说, 比如要达到照片的效果,若通过svg进行矢量图绘制,所的的文件就会大得离谱。

(2)位图

是通过对一个矩阵的栅格进行编码来表示图像,每个栅格只能编码表示一个特定的颜色,对于一个照片,像素点越多,那这个照片就会越清晰。

但随着像素点越多,图像文件就会越大, 在一定网络速度的前提下,下载完一张图像就会更慢。

对于性能的考虑,在使用图像时,必须要考虑对图像进行压缩,采用什么样的图像格式,使用什么样的压缩算法以及压缩到何种程度。

2.1 分辨率

在代码css中,我们经常为图像设置显示所需的长度像素值,但在不同的设备屏幕上,有时候相同的图像以及相同的设置,其渲染出来的图像,清晰度会有所差别,产生这个现象的原因涉及到两种不同的分辨率: 屏幕分辨率和图像分辨率。

图像分辨率:表示该图像文件所包含的真是像素值信息,比如200px * 200px,就定义了长宽各200个像素点的信息。

设备分辨率:显示器屏幕所显示的最大像素值。

两者有何不同:

10px ** 10px 的图像分辨率,既可以使用10px ***10px的屏幕来显示,也可以使用20px ** 20px 的屏幕显示。

更高的设备分辨率有助于显示更加绚丽多彩的图像。

为了能在不同的分辨率下使项目中所包含的图像都能得到恰当的展示效果,可以利用picture标签和srcset属性提供图像的多个变体。

用于插入图像的img标签,有一个srcset属性可以用来针对不同设备,提供不同的分辨率的图像文件:

<img src="photo.jpg" srcset= "photo@2x.jpg 2x,photo@3x.jpg 3x,photo@4x.jpg 4x">

在srcset属性,可以设置多种分辨率的图像文件以及使用条件,浏览器在请求之前便会对其进行解析,只选择最合适的图像文件进行下载,如果浏览器不支持,那么就可以在src中包含默认的图像文件。

使用picture标签则会在多图像文件选择时,获得更多的控制维度,比如屏幕方向,设备大小,屏幕分辨率。

<picture>

<source media= '(min-width: 800px)' srcset='photo.jpg pthot@2x.jpg 2x'></source>

<source media= '(min-width: 400px)' srcset='photo-s.jpg pthot-s@2x.jpg 2x'></source>

</picture>

picture标签或许会有兼容性问题。

2,图像格式

不同的图像格式在于他们进行有损压缩和无损压缩过程中采用了不同的算法组合。

格式选择建议:

在这里插入图片描述

http://www.lryc.cn/news/4522.html

相关文章:

  • 在surface go 2上安装ubuntu 20.04
  • Java:SpringMVC的使用(1)
  • 自动化测试岗位求职简历编写规范+注意事项,让你的简历脱颖而出
  • C 字符串
  • 【每日一题Day115】LC2335装满杯子需要的最短总时长 | 贪心
  • Flink流计算处理-旁路输出
  • nginx正向代理的配置和使用
  • Oracle Trace File Analyzer 介绍及简单使用
  • 面试实战篇 | 快手本地生活,结合项目谈Redis实战项目场景?MySQL InnoDB存储引擎如何工作的?策略模式?
  • Hadoop之——WordCount案例与执行本地jar包
  • 利用git reflog 命令来查看历史提交记录,并使用提交记录恢复已经被删除掉的分支
  • 【软件测试】大厂测试开发你真的了解吗?测试开发养成记......
  • Redis中的hash结构和扩容机制
  • 【C++奇技淫巧】前置自增与后置自增的区别(++i,i++)【2023.02.08】
  • 实战打靶集锦-005-HL
  • 铁路系统各专业介绍(车机工电辆)
  • 2/11考试总结
  • Java Set集合
  • 【手写 Vuex 源码】第七篇 - Vuex 的模块安装
  • EOC第六章《块与中枢派发》
  • 八、Git远程仓库操作——跨团队成员的协作
  • 算法刷题打卡第88天:字母板上的路径
  • UVa The Morning after Halloween 万圣节后的早晨 双向BFS
  • Connext DDS属性配置参考大全(3)
  • Docker-安装Jenkins-使用jenkins发版Java项目
  • spring 中的 Bean 是否线程安全
  • 微电网两阶段鲁棒优化经济调度方法[3]【升级优化版本】(Matlab代码实现)
  • C++入门教程||C++ 数据类型||C++ 变量类型
  • 【visio使用技巧】图片导出pdf时去掉多余空白
  • Rust语言之Option枚举类型