性能优化系列之如何为不同格式的图片选择合适的应用场景?

news2024/11/24 6:54:16

文章の目录

  • 一、JPEG(Joint Photographic Experts Group)
    • 1、介绍
    • 2、不适合情形
    • 3、非常适合的情形
  • 二、PNG(Portable Network Graphics)
    • 1、介绍
    • 2、不适合的情形
    • 3、非常适合的情形
  • 三、GIF(Graphics Interchange Format)
    • 1、介绍
    • 2、不适合的情形
    • 3、非常适合的情形
  • 四、Webp
    • 1、介绍
    • 2、不适合的情形
    • 3、非常适合的情形
  • 写在最后


一、JPEG(Joint Photographic Experts Group)

联合图像专家小组是一种针对彩色照片而广泛使用的有损压缩图形格式。

1、介绍

栅格图形。常用文件扩展名为 .jpg,也有 .jpeg.jpe。JPEG 在互联网上常被应用于存储和传输照片。

2、不适合情形

线条图形和文字、图标图形,因为它的压缩算法不太这些类型的图形;并且不支持透明度。

3、非常适合的情形

颜色丰富的照片、彩色图大焦点图、通栏 banner 图;结构不规则的图形。

在这里插入图片描述

二、PNG(Portable Network Graphics)

便携式网络图形是一种无损压缩的位图图形格式,支持索引、灰度、RGB 三种颜色方案以及 Alpha 通道等特性。

1、介绍

栅格图形。PNG 最初是作为替代 GIF 来设计的,能够显示 256 色,文件比 JPEG 或者 GIF 大,但是 PNG 非常好的保留了图像质量。支持 Alpha 通道的半透明和透明特性。最高支持 24 位彩色图像(PNG-24)和 8 位灰度图像(PNG-8)。

2、不适合的情形

由于是无损存储,彩色图像体积太大,所以不太适合。

3、非常适合的情形

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

在这里插入图片描述

三、GIF(Graphics Interchange Format)

图像互换格式是一种位图图形文件格式,以 8 位色(即 256 种颜色)重现真彩色的图像,采用 LZW 压缩算法进行编码。

1、介绍

栅格图形。支持 256 色;仅支持完全透明和完全不透明;如果需要比较通用的动画,GIF 是唯一选择。

2、不适合的情形

每个像素只有 8 比特,不适合存储彩色图片。

3、非常适合的情形

动画,图标。
在这里插入图片描述

四、Webp

Webp 是一种现代图像格式,可为图像提供无损压缩和有损压缩,这使得它非常灵活。由 Google 在购买 On2 Technologies 后发展出来,以 BSD 授权条款发布。

1、介绍

优秀算法能同时保证一定程序上的图像质量和比较小的体积;可以插入多帧,实现动画效果;可以设置透明度;采用 8 位压缩算法。无损的 Webp 比 PNG 小 26%,有损的 Webp 比 JPEG 小 25-34%,比 GIF 有更好的动画。

2、不适合的情形

最多处理 256 色,不适合于彩色图片。

3、非常适合的情形

适用于图形和半透明图像。

在这里插入图片描述

写在最后

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【nowcoder】笔试强训Day9

目录 一、选择题 二、编程题 2.1另类加法 2.2走方格的方案数 一、选择题 1.下面程序的输出是:() String x"fmn"; x.toUpperCase(); String yx.replace(f,F); yy"wxy"; System.out.println(y); A FmNwxy B fmnwxy C wxyfmn D Fmnwxy String x “…

决胜「年货时代」:一场关于零食的品质突围

“都说冰糖葫芦儿酸,酸里面它裹着甜;都说冰糖葫芦儿甜,可甜里面它透着那酸。” 1995年春节,伴随着《冰糖葫芦》唱响大街小巷,小贩骑着自行车,后车座的草靶子上插满冰糖葫芦,或摆在集市上&#…

大数据系列——什么是hive?hive用来干什么的?hive常见问题是啥?

目录 一、什么是hive 二、为什么要使用Hive 三、Hive与Hadoop的关系 四、Hive与HDFS的关系 五、Hive与传统数据库区别 六、Hive中的数据存储是怎样的 七、对hive进行增删改查 八、排序逻辑 九、hive不支持update数据的解决方案 十、Hive中支持的分区类型有两种 十…

Linux部署前端Vue项目

Linux部署前端Vue项目 1 部署到tomcat上 1.1 部署Vue项目 打包项目 在命令行终端,输入命令,打包项目: npm run build将生成的dist文件夹下的所有内容复制到tomcat的webapps下 "推荐":在webapps下新建一个文件夹,例…

【互信息驱动:可逆神经网络】

Mutual Information-driven Pan-sharpening (互信息驱动的全色锐化) 全色锐化的目的是综合纹理丰富的全色图像和多光谱图像的互补信息,生成纹理丰富的多光谱图像。尽管已有的全色锐化方法取得了显著的进步,但它们并没有明确地加…

动态圣诞树-HTML

<!DOCTYPE HTML PUBLIC> <html> <head> <title>圣诞树</title> <meta charset"utf-8" > <style> html, body { width: 100%; height: 100%; margin: 0; padding: 0; border: 0; } div { margin: 0; padding: 0; border: 0…

docker高级篇:实战-自己开发的微服务怎么在docker上面运行?

通过前面的一系列学习,我们已经知道怎么制作dockerfile了。那么,本篇文章,咱们就把自己写的spring boot的demo项目,部署在docker上面。 案例目标: 我们自己开发的微服务怎么在docker上面运行呢? 1:通过IDEA新建一个普通的微服务模块 2:通过dockerfile发布微服务部署…

通过 api 和 keycloak 理解OIDC认证

参考资料 通过Keycloak API理解OAuth2与OpenID Connect 什么是keycloak如何在nodejs中使用它 如何通过 OIDC 协议实现单点登录&#xff1f; https://jwt.io/#encoded-jwt OIDC认证的简单demo 单点登录&#xff08;Single Sign On&#xff09;是目前比较流行的企业业务整合…

cut与分层抽样(Stratified Sampling)

个人觉得&#xff0c; 把分层抽样称为“分类采样”会更贴切一些。通常最基本的采样手段是&#xff1a;随机抽样&#xff0c;但是在很多场景下&#xff0c;随机抽样是有问题的&#xff0c;举一个简单的例子&#xff1a;如果现在要发起一个啤酒品牌知名度的调查问卷&#xff0c;我…

二、let进阶、const、全部变量与顶层对象

二、let进阶、const、全部变量与顶层对象 一、let进阶 let创建了块级作用域&#xff0c;每次循环时内部的块级作用域都会去访问外层块级作用域中的变量i&#xff0c;而外层块级作用域中的变量i都不同&#xff0c;所以打印0-9&#xff1b;类似于闭包&#xff1a;内部函数返回到…

MySQL【Primary key】主键约束

关键字: [ primary key ] 作用&#xff1a;用来唯一标识表中的一行记录 特点&#xff1a;1.唯一性约束非空约束 唯一且为空 唯一性约束&#xff1a;不允许出现重复值 非空约束&#xff1a;不允许出现空值&#xff0c;但不是 NULL 2.一个表最多只能有一个主键约束&#x…

35岁之后软件测试工程师靠什么养家?我还能继续做测试。

35岁真是一个焦虑的年龄&#xff0c;我一个在北京软件测试的朋友从一个大公司裸辞以后&#xff0c;年前应聘到了一家小公司做技术总监&#xff0c;因为疫情的爆发&#xff0c;公司倒闭了&#xff0c;他失业了。为了养家我这个朋友不得不冒着被病毒感染的危险开始送外卖。作为一…

Springboot整合Liquibase初始化数据库

一、前言 liquibase是一个数据库变更的版本控制工具。项目中通过liquibase解析用户编写的liquibase的配置文件,生成sql语句&#xff0c;并执行和记录。执行是根据记录确定sql语句是否曾经执行过&#xff0c;和配置文件里的预判断语句确定sql是否执行。 本篇文章给大家介绍spr…

RabbitMQ浏览器UI插件

Awesome RabbitMQ Management 该插件中文意思是"很棒的 RabbitMQ 管理",是对原生RabbitMQ的UI图形界面进行增强的一款插件。 可在Google Chrome商店中下载安装 概述 原文介绍 Awesome RabbitMQ Management RabbitMQ queues view can become unusable with many qu…

微服务 Spring Boot Mybatis-Plus 整合 EasyPOI 实现 Excel 一对多 导入

文章目录⛄引言一、EasyPOI 实现Excel 的一对多导入 -- 代码实现⛅需求说明⚡核心源码实现二、Easy POI 实现一对多导入 -- 测试三、效果图展示⛵小结⛄引言 Excel导入 是 开发中 很常用的 功能 &#xff0c;本篇讲解 如何使用 Spring Boot MyBatis -Plus 整合 EasyPOI 实现E…

2023年淘宝天猫年货节超级红包哪里领?

2023年淘宝天猫年货节超级红包哪里领? 姐妹们在淘宝年货节活动就就就要开始预热模式了&#xff0c;时间是12月27日中午12点&#xff0c;大家最爱的项目一定是领取超级红包了。这不&#xff0c;2023年的年货节就要开启了。但是&#xff0c;很多小伙伴还不知道&#xff0c;淘宝…

<生产者、消费者问题>——《Linux》

目录 1. 生产者消费者模型 1.1 为何要使用生产者消费者模型 1.2 生产者消费者模型优点 2.基于BlockingQueue的生产者消费者模型 2.1 BlockingQueue 2.2 C queue模拟阻塞队列的生产消费模型 3.POSIX信号量 4.基于环形队列的生产消费模型 后记&#xff1a;●由于作者水平…

windows中docker修改镜像与容器存放目录(不想放c盘)

查看状态 wsl --list -v 先退出docker deskop 查看状态 wsl --list -v 关闭wsl wsl --shutdown docker的镜像与容器存放目录在此处 新建一个你想要存放的目录&#xff0c;比如我存到H盘这个地方 分别将c盘那两个文件夹&#xff08;data和distro&#xff09;的内容打包压缩到H盘…

php使用redis进行消息发布订阅

php使用redis进行消息发布订阅前置条件消费者订阅subscribe.php生产者发送消息publish.php执行消费者订阅&#xff0c;开始阻塞获取消息执行生产者&#xff0c;开始发送消息查看消费者终端前置条件 已经安装了php的redis扩展 消费者订阅subscribe.php <?php ini_set(def…

【Java基础】Java日志—什么是日志?什么是Log4j?Log4j入门案例及配置

目录 一、什么是日志&#xff1f; 二、为什么会有日志&#xff1f; 四、入门案例&#xff1a;Log4j日志信息输出到控制台 步骤与实现&#xff1a; 步骤1&#xff1a;拷贝坐标 步骤2&#xff1a;拷贝配置文件 log4j.properties 步骤3&#xff1a;编写测试类 写到最后 &…