常见图片分类及适用场景
图片优化–质量与性能的博弈
无论是作者还是《高性能网站建设指南》的作者,都认为图片的优化优先级高于js和css的优先级,因为这是用户可感知的。
图片压缩我们通常会选择压缩图片的体积来减少网络加载时长,但一般会牺牲一些图片成像效果。
目前主要的图片分类有JPEG/JPG、PNG、WebP、Base64、SVG
JPEG/JPG
关键词:有损压缩、体积小、加载快、不支持透明
JPG 适用于呈现色彩丰富的图片,在我们日常开发中,JPG 图片经常作为大的背景图、轮播图或 Banner 图出现。
当在处理颜色对比强烈的图像时,人为压缩导致的图片模糊会相当明显。且JPEG不支持透明图片。
PNG-8 与 PNG-24
关键字:无损压缩、质量高、体积大、支持透明。
PNG是一种无损压缩的高保真的图片格式。跟JPG相比,有更强的色彩表现力,对线条的处理更加细腻,对透明度有良好的支持。唯一的缺点就是体积有点大。
主要使用场景:主要用来处理小logo、背景图等。
SVG
关键字:文本文件、体积小、不失真、兼容性好
SVG(可缩放矢量图形)是一种基于 XML 语法的图像格式。它和本文提及的其它图片种类有着本质的不同:SVG 对图像的处理不是基于像素点,而是是基于对图像的形状描述
SVG 与 PNG 和 JPG 相比,文件体积更小,可压缩性更强。
当然,作为矢量图,它最显著的优势还是在于图片可无限放大而不失真这一点上。这使得 SVG 即使是被放到视网膜屏幕上,也可以一如既往地展现出较好的成像品质——1 张 SVG 足以适配 n 种分辨率。
此外,SVG 是文本文件。我们既可以像写代码一样定义 SVG,把它写在 HTML 里、成为 DOM 的一部分,也可以把对图形的描述写入以 .svg 为后缀的独立文件(SVG 文件在使用上与普通图片文件无异)。这使得 SVG 文件可以被非常多的工具读取和修改,具有较强的灵活性。
SVG 的局限性主要有两个方面,一方面是它的渲染成本比较高,这点对性能来说是很不利的。另一方面,SVG 存在着其它图片格式所没有的学习成本(它是可编程的)。
Base64
作为雪碧图的补充而存在。雪碧图主要是将很多小图合并到一张透明背景上再结合css定位显示特定部分减少网络请求的一种优化方式。
base64把图片进行编码可以将结果写入到html和css中从而减少网络请求。base64编码之后图片会膨胀至原来的40%。
在我的开发中实际遇到过一个问题就是7M的图片经过压缩后再进行base64存入前端存储localsorage中,经常会出现卡顿等现象。
总结
图片常见格式有JPG/JPEG, PNG-8/PNG-24, SVG,Base64。
JPG/JPEG有损压缩图片,体积小,加载快。不支持透明。适合色彩丰富的图片如轮播图等.
PNG-8与PNG-24无损压缩图片,质量好但体积大。支持透明,一般的logo、背景图都会采用此图片。
svg可缩放矢量图,体积小不失真兼容性好。svg的渲染成本高于前两者
Base64作为雪碧图的补充出现,通过对图片进行base64编码可以直接将编码结果写入html和css,可以减少网络请求。大图不适合用base64 因为编码之后会膨胀。
现在跟后端交互过程中,很多图片都会采用base64编码后传给后端。此时需要注意图片的大小问题。
从场景上区分,如果轮播图我们一般会使用jpg图片,logo和背景图一般会使用png图片,如果是小图标可以采用雪碧图,或svg .base64可以用在小图上减少网络请求。
常见图片分类及适用场景相关推荐
- 3.4 Kaggle自然场景图片分类
3.4 Kaggle自然场景图片分类 自然场景识别数据集来自kaggle竞赛平台,最初是由Intel举办的一个图片分类竞赛数据集,它的训练集有14034张图片,测试集有3000张图片,未标注数据集有7 ...
- 【经典算法必读】图片分类系列之(一): 你真的了解图片分类(Image Classification)吗?...
欢迎关注我的个人微信公众号:小纸屑 图片分类是机器学习经典问题,也是深度学习声名鹊起之作.正是2012年AlexNet在图片分类竞赛ImageNet出乎寻常的性能,使得深度学习一夜爆红,方有今天人工智 ...
- 深度学习系统相比较传统的机器学习系统,针对常见的分类问题,精度究竟能有多大提升?...
来源:知乎 原文链接:深度学习系统相比较传统的机器学习系统,针对常见的分类问题,精度究竟能有多大提升? 问题: 我现在手头有一个binary classification的问题.数据量在一百万左右.每 ...
- 动手深度学习13——计算机视觉:数据增广、图片分类
文章目录 一.数据增广 1.1 为何进行数据增广? 1.2 常见图片增广方式 1.2.1 翻转 1.2.2 切割(裁剪) 1.2.3 改变颜色 1.2.4 综合使用 1.3 使用图像增广进行训练 1. ...
- 实战:掌握PyTorch图片分类的简明教程 | 附完整代码
作者 | 小宋是呢 转载自CSDN博客 1.引文 深度学习的比赛中,图片分类是很常见的比赛,同时也是很难取得特别高名次的比赛,因为图片分类已经被大家研究的很透彻,一些开源的网络很容易取得高分.如果大家 ...
- 嵌入式系统分类及其应用场景_词嵌入及其应用简介
嵌入式系统分类及其应用场景 Before I give you an introduction on Word Embeddings, take a look at the following exa ...
- 宠物狗图片分类之迁移学习代码笔记
五月两场 | NVIDIA DLI 深度学习入门课程 5月19日/5月26日一天密集式学习 快速带你入门阅读全文> 正文共3152个字,预计阅读时间8分钟. 本文主要是总结之前零零散散抽出时间 ...
- 常见的设计模式和应用场景
常见的设计模式和应用场景 单例模式 原型模式 命令模式 六大设计原则 1. 单一职责原则 2. 开闭原则 3. 里氏替换原则 4. 依赖倒置原则 5. 接口隔离原则 6. 迪米特法则 设计模式从大的维 ...
- 基于卷积神经网络CNN的图片分类实现——附代码
目录 摘要: 1.卷积神经网络介绍: 2.卷积神经网络(CNN)构建与训练: 2.1 CNN的输入图像 2.2 构建CNN网络 2.3 训练CNN网络 3.卷积神经网络(CNN)的实际分类测试: 4. ...
- AI实战:目标检测模型应用之生活垃圾图片分类
前言 "华为云杯"2020深圳开放数据应用创新大赛·生活垃圾图片分类 [大赛介绍] 由深圳市政务服务数据管理局.南山区人民政府主办,南山区政务服务数据管理局.华为技术有限公司承办的 ...
最新文章
- Python流程控制语句
- 微服务实践分享(4)配置中心
- 正则匹配字符串无匹配不到_实现简单正则表达式匹配
- 数值保留几位小数后四舍五入、向上取值、向下取值、
- 怎么样让用户认为产品更有价值?让他们DIY吧!
- mysql 镜像备份_手动构建percona-xtrabackup Docker镜像,并实现mysql数据备份
- scala编程第18章学习笔记——有状态的对象
- 5.0 java集合框架中的接口collection属于_JAVA集合框架 - osc_cyo2dovg的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【C/C++】使用PDFLIB创建一个带中文的pdf文件
- 国内外公有云对比:功能介绍、性能测试
- 图像处理中的深度学习技术
- [跟进]_微软关闭MSN博客,腾讯第一时间抢占市场
- husky 7 + lint-staged 11+ prettier 2 + eslint 7 配置
- 拉网小调(民歌介绍)
- 淘宝天猫各平台APP端页面详情api接口调用
- 使用 HTML、CSS 和 JavaScript 的简单模拟时钟
- 解决C#读取文本文件乱码
- Render函数详解
- NXP bootloader
- load json文件时常见错误以及修正总结(亲测有效)
热门文章
- linux sftp put 文件夹,使用sftp命令上传文件夹方法
- Windows获取本地安装软件详细信息(对标卸载程序控制面板)
- jquery使用 validate 插件进行验证是否通过
- Java 动态眨眼 EyesJPanel (整理)
- mybatis中显示Type interface com.javacto.dao.UserMapper is not known to the MapperRegistry.
- ios引导商店评分问题
- wim工具扫描linux磁盘,[V1.30.2011.501版]WimTool -- Wim文件的图形视窗处理工具[无忧首发]...
- 什么是开源网络情报?有什么特点?
- 最值得用的五款 chrome 插件 Vimium momentum The Great Suspender等 附下载地址。
- JS怎么唤醒高德导航