聊一下前端常见的图片格式

1. JPEG (JPG)

  • 概述:是一种有损压缩的图像格式,它通过去除图像中一些人类视觉不易察觉的细节来减小文件大小。它支持数百万种颜色,能够很好地呈现照片等色彩丰富的图像内容。
  • 优点
    • 压缩率高:可以在保持相对较好的图像质量的情况下,使文件大小大幅减小,便于存储和网络传输。
    • 广泛支持:几乎所有浏览器和设备都能显示JPEG格式图像。
  • 缺点
    • 有损压缩:压缩过程中会丢失一些图像质量,特别是在压缩率高时,细节会丢失。
    • 不支持透明度:不能处理透明背景。
  •  使用场景
    • 适用于网页中的图片展示,像新闻网站、电商网站上的产品图片等,在保证视觉效果的同时,能够加快网页加载速度。例如淘宝的这些:


2. PNG

  • 概述:PNG是一种无损压缩图像格式,支持透明度,特别适合用来存储需要透明背景的图像或图标。
  • 优点
    • 无损压缩:不会丢失任何图像质量。
    • 支持透明度:可以有透明背景,适合做图标、徽标等。
  • 缺点
    • 文件较大:相比JPEG,文件通常更大,尤其是在图像内容复杂时。
    • 不适合照片:由于文件大小问题,较不适合存储照片等复杂图像。
  • 使用场景
    • 图标、按钮、网页元素、图形设计中的透明背景图像。
    • 需要无损压缩的场景,如存储LOGO、截图。例如百度的logo:我们同样放大500倍,看一下jpg(上)和png(下)的区别,很明显png会更清晰一些。

3. BMP (Bitmap)

  • 概述:BMP是一种未压缩的图像格式,每个像素的颜色值由特定的比特表示。通常不进行压缩,图像文件较大。
  • 优点
    • 无压缩:保存原始像素数据,质量最高。
    • 易于编辑:没有压缩损失,便于编辑和处理。
  • 缺点
    • 文件庞大:由于没有压缩,存储的图像文件非常大。
    • 支持度差:相比其他格式,BMP在网络中的使用较少,兼容性差。
  • 使用场景
    • 编辑和存储高质量图像文件,通常在设计、图形处理软件中使用。
  • 例子:图像处理软件中的中间文件格式,历史遗留图像。例如我们存储三个同样的图片,bmp是最大的。

4. GIF

  • 概述:GIF是一种支持动画的图像格式,使用8位颜色深度(256种颜色),支持透明背景,但只能支持单一的透明色。
  • 优点
    • 支持动画:GIF最著名的特性是支持多帧动画。
    • 透明性:支持透明背景(但仅能有单色透明)。
  • 缺点
    • 颜色限制:最多只支持256种颜色,适用于简单的图形。
    • 文件较大:动画GIF可能会产生较大的文件,尤其是帧数较多时。
  • 使用场景
    • 动画、表情包、短小动画,简单的图形或网页小图标。
  • 例子:社交媒体上的表情包、简短的广告动画。例如jd:

5. WEBP

  • 概述:WEBP是一种现代的图片格式,由Google开发,旨在提供比JPEG更高效的压缩,且支持透明度和动画。
  • 优点
    • 高压缩率:相同质量下,WEBP的文件比JPEG和PNG更小。
    • 支持透明度和动画:支持无损和有损压缩,适合动态图像和透明图像。
  • 缺点
    • 浏览器兼容性较差:部分旧版浏览器不支持WEBP。
    • 支持的工具较少:不像JPEG和PNG那样广泛支持,部分设计工具和图片查看器可能不支持。
  • 使用场景
    • 高效的网页图像、背景图、网站上的图片。
    • 图片质量要求高但又想优化加载速度的场景。
  • 例子:Google Chrome 中的网页图片,支持WebP的现代网站图像。例如掘金的图片格式:
  • 这里补充一下:.awebp 是一种与 .webp 格式相关的图像扩展名,通常指的是 WebP 格式的 动画 版本(即 WebP 动画)。与普通的 .webp 文件不同,.awebp 文件包含多帧图像数据,支持图像动画效果,类似于 GIF 格式。

6. Base64

  • 概述:Base64并不是一种图像格式,而是一种将图像数据转化为ASCII编码的方式,使其可以嵌入到HTML、CSS或JavaScript中。
  • 优点
    • 减少HTTP请求:将图像嵌入到网页中,减少对外部资源的请求,提升页面加载速度。
    • 适合小文件:对于小文件来说,Base64编码可以减少请求时间。
  • 缺点
    • 文件变大:Base64编码会将图像的大小增加约33%。
    • 处理复杂:对于大型图像,Base64的效果不明显,可能会影响性能。
  • 使用场景
    • 用于小图标、图像和内联样式(如嵌入CSS中的图像)。
  • 例子:网页内嵌图标或CSS背景图像。base64的格式如下

7. SVG

  • 概述:SVG是一种基于XML的矢量图像格式,不同于像素图,SVG是由点、线和路径构成,适用于图形和图标。
  • 优点
    • 无失真缩放:可以无限缩放,不会丢失任何质量。
    • 小文件体积:对于图标和简单图形来说,文件体积通常非常小。
    • 可编辑性:可以直接编辑SVG文件,且可以通过CSS和JavaScript进行动态修改。
  • 缺点
    • 复杂性高:对于复杂图像(如照片),SVG不适用。
    • 浏览器支持:虽然现代浏览器支持SVG,但一些老旧浏览器可能不完全支持。
  • 使用场景
    • 用于网站图标、图形元素、矢量图和动画。
  • 例子:Logo图标、Web上的矢量图、互动动画。例如掘金的logo:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490697.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构——内排序】快速排序(头歌实践教学平台习题)【合集】

目录😋 任务描述 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现快速排序算法。 测试说明 平台会对你编写的代码进行测试: 测试输入示例: 10 6 8 7 9 0 1 3 2 4 5 (说明:第一行是元素个数&a…

企业级包管理器之 monorepomultirepo (8)

在企业级项目开发中,面对多个项目的管理,monorepo 和 multirepo 是两种常见的代码管理方案,它们各有特点与优劣,下面我们来详细了解一下。 一、基本概念 monorepo:“mono”在英语中有“单一的、单独的”之意&#xf…

【electron】electron forge + vite + vue + electron-release-server 自动更新客户端

基本信息 electron forge vue页面(中文):https://forge.electron.js.cn/guides/framework-integration/vue-3 electron forge vue页面(英文,中文版下面的tab无法点击):https://www.electronfor…

后端-带有多个动态查询条件的分页查询

page和pagesize是分页插件所带的参数,其他三个是模糊查询的条件字段 因为是路径动态?拼接 的形式,所以不需要注解requestbody,先封装到pageresult中,再把pageresult封装到result中。 后端给前端的返回值封装到Vo中

【机器学习算法】——决策树之集成学习:Bagging、Adaboost、Xgboost、RandomForest、XGBoost

集成学习 **集成学习(Ensemble learning)**是机器学习中近年来的一大热门领域。其中的集成方法是用多种学习方法的组合来获取比原方法更优的结果。 使用于组合的算法是弱学习算法,即分类正确率仅比随机猜测略高的学习算法,但是组合之后的效果仍可能高于…

Java常用 Date 时间格式化、Calender日历、正则表达式的用法

目录 1. SimpleDateFormat 日期格式化类 1.1 Date 类型转 String 1.2 String 类型转 Date 2. Calendar 日历类 3. 正则表达式 3.1 正则表达式的组成部分 3.2 手机号正则表达式 3.3 常用密码校验正则表达式 1. SimpleDateFormat 日期格式化类 SimpleDateFormat 是Java中…

jdk1.8安装及环境配置(最新最详细教学!!!)

jdk1.8安装: 看了网上很多关于jdk1.8的安装,我觉得有时候会让人云里雾里,虽然自己可能配置成功,不过没有一套自己的思路,我结合自己的经验来说一下。 jdk在windows有两种安装方式,一种是解压缩包&#xf…

51c嵌入式~单片机~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、不同的电平信号的MCU怎么通信? 下面这个“电平转换”电路,理解后令人心情愉快。电路设计其实也可以很有趣。 先说一说这个电路的用途:当两个MCU在不同的工作电压下工作&a…

httpsok-v1.18.0-SSL证书自动续期

🔥httpsok-v1.18.0-SSL证书自动续期 介绍 httpsok 是一个便捷的 HTTPS 证书自动续期工具,基于全新的设计理念,专为 Nginx 、OpenResty、Apache 等服务器设计。已服务众多中小企业,稳定、安全、可靠。 一行命令,一分…

Dynamics 365 CRM- 后端

Dynamics 365 CRM 后端插件语法示例 public IPluginExecutionContext context null;//上下文 public IOrganizationServiceFactory serviceFactory null;//组织服务工厂对象 public IOrganizationService service null;//Org服务对象//创建执行上下文 context (IPluginExe…

Linux驱动开发(12):中断子系统–按键中断实验

本章我们以按键为例讲解在驱动程序中如何使用中断, 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节, 这里主要介绍在驱动中如何使用中断,对于中断的概念及GIC中断控制器相关内容不再进行讲解。 本章配套源码和设备树插件位于“…

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana,并且dashboard接入数据 大屏编号地址:Node Exporter Full | Grafana Labs 创建企微机器人 备注:群里若有第三方外部人员不能创建 机器人创建完成,记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…

[WiFi] WiFi安全加密WEP Vs WPA Vs WPA2 Vs WPA3整理

WiFi安全标准时间线 WEP(Wired Equivalent Privacy) WEP最早于1997年推出,是为了保护无线网络上的数据通信而设计的。当时,Wi-Fi技术还处于起步阶段,人们开始意识到需要一种安全协议来防止未经授权的访问和窃听。WEP被…

使用Keil V6编译 FreeRTOS CMSIS V2版本 ETH + Lwip 编译报错问题解决方式

网上其他人写的都解决不了,要不用的是CMSIS V1版本,根据他们的方式搞完还是报错,今天花点时间自己搞一下。 不想自己动手?没问题,模版已上传Gitee https://gitee.com/maybe_404/stm32-f4xx_-free-rtos_-lwip_-templa…

群控系统服务端开发模式-应用开发-操作记录功能开发

一、开放路由 在根目录下route文件夹下修改app.php文件,代码如下: // 操作日志Route::get(token/get_list,permission.Token/getList);// 获取操作日志列表Route::post(token/get_all,permission.Token/getAll);// 获取操作日志所有数据Route::post(toke…

大模型闯关学习——L1G6000 OpenCompass 评测书生大模型实践

任务要求: 基础任务: 首先创建开发机 进入开发机: 创建测评所需要的环境 conda create -n opencompass python3.10 conda activate opencompass cd /root git clone -b 0.3.3 https://github.com/open-compass/opencompass cd opencompas…

C# 探险之旅:第三十节 - 类型class(继承Inheritance) —— 当“儿子”继承“老爸”的遗产

嘿,探险家们!欢迎再次踏上我们的C#奇幻旅程。今天,我们要聊一个既有趣又实用的话题——继承(Inheritance)!想象一下,如果你的“儿子”能够继承“老爸”的遗产,那编程世界里的对象们也…

排序算法(2)——快速排序

目录 1. 实现方式 1.1 霍尔法 ​ 1.2 挖坑法 1.3 前后指针法 2. 复杂度分析 3. 快速排序优化 3.1 三数取中 3.2 小区间使用插入排序 3.3 非递归实现 快速排序是英国计算机科学家托尼・霍尔(C. A. R. Hoare)在 1960 年年提出的一种二叉树结构的交…

【python】最新版抖音js逆向拿到数据,非常详细教程(附完整代码)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

apollo2.0.0本地调试运行

一、下载源码 https://github.com/apolloconfig/apollo/tree/v2.0.0 二、本地环境 jdk 1.8 mysql 5.7 maven 3.6.3 三、IDEA运行源码 IDEA直接Open打开项目即可 需要依次启动configservice、adminservice、portal三个服务 基于apollo-assembly模块的ApolloApplication…