当前位置: 首页 > 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,图像格式

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

格式选择建议:

在这里插入图片描述

相关文章:

图像优化篇

目录&#xff08;1&#xff09;矢量图&#xff08;2&#xff09;位图 2.1 分辨率2&#xff0c;图像格式格式选择建议&#xff1a;&#xff08;1&#xff09;矢量图 被定义为一个对象&#xff0c;包括颜色&#xff0c;大小&#xff0c;形状&#xff0c;以及屏幕位置等属性&…...

在surface go 2上安装ubuntu 20.04

在surface go 2上安装ubuntu 20.04 1.制作安装盘 下载ubuntu系统的iso文件 使用Rufus软件将u盘制作为ubuntu系统的安装盘 2.在surface go 2上操作 禁用快速启动 在 Windows 中&#xff0c;禁用“电源选项”中的“快速启动”>选择电源按钮的功能 禁用 Bitlocker 在 Wi…...

Java:SpringMVC的使用(1)

目录第一章、SpringMVC基本了解1.1 概述1.2 SpringMVC处理请求原理简图第二章、SpringMVC搭建框架1、搭建SpringMVC框架1.1 创建工程【web工程】1.2 导入jar包1.3 编写配置文件(1) web.xml注册DispatcherServlet(2) springmvc.xml(3) index.html1.4 编写请求处理器【Controller…...

自动化测试岗位求职简历编写规范+注意事项,让你的简历脱颖而出

目录 前言 1.个人信息 2.教育背景(写最高学历) 3.个人技能(按精通/掌握/熟练/了解层次来写) 4.工作经历 5.工作经验/项目经历 6.自我评价 总结 前言 挑选一个阅读舒适度不错的模板 HR和面试官看的简历多&#xff0c;都是快速阅读&#xff0c;舒适度特别重要&#xff1b…...

C 字符串

在 C 语言中&#xff0c;字符串实际上是使用空字符 \0 结尾的一维字符数组。因此&#xff0c;\0 是用于标记字符串的结束。空字符&#xff08;Null character&#xff09;又称结束符&#xff0c;缩写 NUL&#xff0c;是一个数值为 0 的控制字符&#xff0c;\0 是转义字符&#…...

【每日一题Day115】LC2335装满杯子需要的最短总时长 | 贪心

装满杯子需要的最短总时长【LC2335】 You have a water dispenser that can dispense cold, warm, and hot water. Every second, you can either fill up 2 cups with different types of water, or 1 cup of any type of water. You are given a 0-indexed integer array amo…...

Flink流计算处理-旁路输出

使用Flink做流数据处理时&#xff0c;除了主流数据输出&#xff0c;还自定义侧流输出即旁路输出&#xff0c;以实现灵活的数据拆分。 定义旁路输出标签 首先需要定义一个OutputTag&#xff0c;代码如下&#xff1a; // 这需要是一个匿名的内部类&#xff0c;以便我们分析类型…...

nginx正向代理的配置和使用

nginx正向代理的配置和使用 nginx正向代理的配置和使用nginx正向代理的配置和使用安装包准备下载nginx安装包下载正向代理模块的包版本与模块对照表部署nginx服务上传nginx包和正向模块包解压,改名安装nginx配置正向代理创建nginx用户检查nginx配置并启动nginx服务所在服务器验…...

Oracle Trace File Analyzer 介绍及简单使用

一、什么是Oracle Trace File Analyzer Oracle Autonomous Health Framework(AHF) 包含 Oracle ORAchk, Oracle EXAchk, and Oracle Trace File Analyzer(TFA). AHF工具包包含了Oracle常用的多种诊断工具&#xff0c;如 ORAchk, Oracle EXAchk, and Oracle Trace File Analyzer…...

面试实战篇 | 快手本地生活,结合项目谈Redis实战项目场景?MySQL InnoDB存储引擎如何工作的?策略模式?

本期是【你好&#xff0c;面试官】系列文章的第21期&#xff0c;持续更新中…。 《你好&#xff0c;面试官》系列目前已经连载20篇了&#xff0c;据说看了这个系列的朋友都拿到了大厂offer~ 你好&#xff0c;面试官 | 你真的理解面向 “对象”&#xff1f;你好&#xff0c;面…...

Hadoop之——WordCount案例与执行本地jar包

目录 一、WordCount代码 (一)WordCount简介 1.wordcount.txt (二)WordCount的java代码 1.WordCountMapper 2.WordCountReduce 3.WordCountDriver (三)IDEA运行结果 (四)Hadoop运行wordcount 1.在HDFS上新建一个文件目录 2.新建一个文件&#xff0c;并上传至该目录下…...

利用git reflog 命令来查看历史提交记录,并使用提交记录恢复已经被删除掉的分支

一.问题描述 当我们在操作中手误删除了某个分支&#xff0c;那该分支中提交的内容也没有了&#xff0c;我们可以利用git reflog这个命令来查看历史提交的记录从而恢复被删除的分支和提交的内容 二.模拟问题 1.创建git仓库&#xff0c;并提交一个文件 [rootcentos7-temp /da…...

【软件测试】大厂测试开发你真的了解吗?测试开发养成记......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 在一些大公司里&…...

Redis中的hash结构和扩容机制

1.rehash原理 hash包含两个数据结构为字典数组ht[0]和ht[1]。其中ht[0]用来存放数据&#xff0c;ht[1]在rehash时使用。 扩容时&#xff0c;ht[1]的大小为第一个大于等于ht[0].used*2的2的幂次方的数&#xff1b; 收缩时&#xff0c;ht[1]的大小为第一个大于等于ht[0].used的…...

【C++奇技淫巧】前置自增与后置自增的区别(++i,i++)【2023.02.08】

简介 先说i和i的区别&#xff0c;判断语句中if(i)是拿i的值先判断&#xff0c;而后自增&#xff1b;if(i)是先自增i再进行判断。涉及到左值与右值也有点区别&#xff0c;i返回的是右值&#xff0c;i返回的是左值。也就是下面的代码要解释的东西。 #include <iostream>i…...

实战打靶集锦-005-HL

**写在前面&#xff1a;**记录一次曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 浏览器访问4.2 目录枚举4.3 探查admin4.4 探查index4.5 探查login5 公共EXP搜索6. 再次目录枚举6.1 探查superadmin.php6.2 查看页面源代码6.3 base64绕过6.4 构建反弹…...

铁路系统各专业介绍(车机工电辆)

目录 1 车务段 1.1 职能简介 1.2 路段名单 1.3 岗位级别 2 机务段 2.1 职能简介 2.2 路段名单 2.3 岗位级别 3 工务段 3.1 职能简介 3.2 路段名单 3.3 岗位级别 4 电务段 4.1 职能简介 4.2 路段名单 4.3 岗位级别 5 车辆段 5.1 职能简介 5.2 路段名单 5.3 …...

2/11考试总结

时间安排 7:30–7:50 读题&#xff0c;T1貌似是个 dp &#xff0c;T2 数据结构&#xff0c;T3 可能是数据结构。 7:50–9:45 T1&#xff0c;点规模非常大&#xff0c;可以达到 1e18 级别&#xff0c;感觉应该没法直接做&#xff0c;考虑每条新增的边的贡献&#xff0c;想到用 …...

Java Set集合

7 Set集合 7.1 Set集合的概述和特点 Set集合的特点 不包含重复元素的集合没有带索引的方法&#xff0c;所以不能使用普通for循环 Set集合是接口通过实现类实例化&#xff08;多态的形式&#xff09; HashSet&#xff1a;添加的元素是无序&#xff0c;不重复&#xff0c;无索引…...

【手写 Vuex 源码】第七篇 - Vuex 的模块安装

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex 模块收集的实现&#xff0c;主要涉及以下几个点&#xff1a; Vuex 模块的概念&#xff1b;Vuex 模块和命名空间的使用&#xff1b;Vuex 模块收集的实现-构建“模块树”&#xff1b; 本篇&#xff0c;继续介绍 Vuex 模…...

想拥有专属的桌面宠物伙伴吗?DyberPet开源框架让个性化养成触手可及

想拥有专属的桌面宠物伙伴吗&#xff1f;DyberPet开源框架让个性化养成触手可及 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否曾希望电脑桌面上能有一个可爱的虚拟伙伴&a…...

基于STM32定时器外部触发模式的高精度频率计实现

1. 为什么需要高精度频率计 在嵌入式开发中&#xff0c;频率测量是个常见但棘手的问题。我遇到过不少开发者&#xff0c;他们用普通IO口配合中断来计数&#xff0c;结果发现测量1MHz以上的信号时误差大得离谱。后来改用STM32的定时器外部触发模式&#xff0c;精度直接提升了一个…...

ChatTTS 本地部署性能优化实战:从生成缓慢到高效推理的解决方案

最近在本地部署 ChatTTS 进行语音合成时&#xff0c;发现生成速度慢得让人有点抓狂。一段几秒钟的音频&#xff0c;等待时间却要十几秒甚至更长&#xff0c;这严重影响了交互体验和批量处理效率。于是&#xff0c;我花了一些时间深入研究&#xff0c;尝试了多种优化手段&#x…...

收藏!8年传统后端转AI应用开发,2026年实战干货全拆解(小白/程序员必看)

本人做了8年传统后端开发&#xff0c;去年顶着30的年龄焦虑&#xff0c;果断跳出舒适圈&#xff0c;咬牙转型AI应用开发。这一年里&#xff0c;面试被面试官追问到哑口无言、项目落地踩遍各种坑、熬夜调试到凌晨都是常态&#xff0c;但所有付出都有回报&#xff1a;薪资直接上涨…...

颠覆有线通信思维,程序让仪器自动搜索附近蓝牙设备,一键配对数据。

一、实际应用场景描述 在某高校《智能仪器与物联网》实验课中&#xff0c;学生需要采集如下数据&#xff1a; - 手持温湿度传感器 - 便携式振动/加速度采集模块 - 蓝牙电子秤 / 力传感器 传统做法&#xff1a; - 每台仪器一根 USB / RS232 线 - 接线混乱、移动受限 - 多人共…...

Qwen3-Coder-Next-Base:800亿参数编码AI重磅登场

Qwen3-Coder-Next-Base&#xff1a;800亿参数编码AI重磅登场 【免费下载链接】Qwen3-Coder-Next-Base 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Coder-Next-Base 导语&#xff1a;Qwen3-Coder-Next-Base正式发布&#xff0c;这款拥有800亿总参数的开源…...

Next.js + Drizzle ORM 全流程终极指南

&#x1f4d6; 目录 &#x1f3d7;️ 全局架构逻辑图 (新增)前置准备&#xff1a;依赖安装核心配置&#xff1a;drizzle.config.ts (必填项检查)环境与安全&#xff1a;.env 与 .gitignoreTypeScript 增强&#xff1a;tsconfig.json 路径别名定义模型&#xff1a;db/schema.ts…...

【Jetson Orin-NX】TensorRT并发推理实战:多模型协同下的YOLO性能优化与部署

1. Jetson Orin-NX与TensorRT并发推理基础 Jetson Orin-NX作为NVIDIA面向边缘计算推出的AI计算平台&#xff0c;其搭载的Ampere架构GPU和12核ARM CPU为多模型并发推理提供了硬件基础。我在实际项目中发现&#xff0c;当我们需要同时运行目标检测&#xff08;YOLOv8n&#xff09…...

OpenCV图像处理:如何用Python实现自适应白平衡(附完整代码)

OpenCV图像处理实战&#xff1a;Python自适应白平衡算法深度解析 当你拍摄的照片总是偏蓝或偏黄时&#xff0c;可能不是相机出了问题&#xff0c;而是白平衡需要调整。作为计算机视觉开发者&#xff0c;掌握自适应白平衡算法能让你轻松解决这类色彩失真问题。本文将带你从原理到…...

GBase 8c数据库权限管理场景实践 分享

环境要求项目参数目标数据库turboex数据库端口15400测试用户turboserver / turbolog测试模式test_privileges环境准备-- 清理旧环境gsql -r -d postgres -p 15400clean connection to all force for database turboex;drop database if exists turboex;drop user if exists tur…...