图形学 | 蓄势待发!说一说图片相关的那些概念

简介: 图形学 | 蓄势待发!说一说图片相关的那些概念

前言


  • 在深入理解图片底层原理的过程中,会接触到各种概念,今天我们简单梳理一下。
  • 如果能帮上忙,请务必点赞加关注,这真的对我非常重要。


目录

image.png

1. 存储形式


图像的主要存储形式分为:File、Stream、Bitmap


2. 图片分类


2.1 有损压缩 & 无损压缩


所谓损失指的是图片的质量,根据压缩过程是否损失图片质量分为两种:


  • 有损压缩(Lossy compression)

压缩过程中损失图片的一部分信息 / 质量,而这种损失是不可逆的。最常见的有损压缩手段是矢量量化,即按照一定的算法将颜色相似的一块区域合并为同一种颜色。

举例:JPEG。


  • 无损压缩(Lossless Compression)

压缩过程中优化冗余数据,而这种优化不会造成图片质量损失。

举例:PNG。


2.2  位图 & 矢量图


  • 位图(Bitmap,又称点阵图、栅格图)
  • 通过像素阵列的排列来来显示图像;
  • 像素是位图的最小单位,每个像素都有自己的颜色信息;
  • 位图缩放会是增大 / 缩小单个像素,会出现失真(锯齿)。

举例:JEPG、PNG、GIF、WebP。


  • 矢量图(Vector)
  • 通过记录图像元素的形状和颜色的算法,根据算法运算来显示图像;
  • 无限放大缩小不失真。

举例:SVG。


2.3 直接色 & 索引色


  • 直接色(Index Colour)

像素数据数值本身就代表一种颜色,例如一个 ARGB 颜色类型的数值0xFFFF0000就代表正红色。


  • 索引色(Direct Colour)

像素数据本身不代表颜色,而是一个指向颜色索引表的索引号。索引色格式适用于图像颜色类型较少的情况,相对于直接色能够大大缩小文件大小。

image.png

image.png


引用自 developer.android.com/topic/perfo… —— Android Developers


3. 色彩


3.1 色彩深度(Bit Depth)


表示像素能呈现的颜色数量,一般用数据位数表示。例如 8 bit 色彩深度,就是把每种颜色通道分为 256 种不同强度等级,所以 RGB 三种颜色通道加起来一共可以表示2242^{24}224种颜色。


3.2 色彩空间(ColorSpace)


又称色域(Color Gamut),表示像素能涵盖的色彩范围,主要有以下几种:


  • CIE XYZ


1931 年,国际照明委员会(CIE)在测得三原色的准确波长后,定义了一个 XYZ 色彩空间,第一次表示出了人类肉眼可见的色彩范围。


image.png

经过数学运算之后可以转换为这张更直观的 CIE XY 色度图:


image.png

  • sRGB

目前互联网上最常见的色域标准,大概覆盖了 35% 的CIE XYZ 色彩空间。


  • YUV

主要用于表示彩色视频的色彩空间(节省带宽,每个像素位深最大不超过 12 位,最小为 6位)


  • CMYK

主要用于彩色印刷的色彩空间。

image.png


引用自 baike.baidu.com/item/%E8%89… —— 百度百科


4. 文件格式


Editting...

GIF位深为8位,所以文件通常较小,而且支持alpha通道以及动画 Webp在等质量大小上和等大小清晰度上都占极大优势 SVG由xml描述,可以适配任何分辨率而保证图像不失真 所以图片压缩主要是针对PNG和JPEG这两种格式


png压缩采用libpng进行压缩,主要场景为编译阶段以及api层调用 jpeg压缩采用libjpeg(Android7后是)进行压缩,主要场景为api层调用

目录
相关文章
|
4天前
|
算法 数据可视化 vr&ar
【图形学】探秘图形学奥秘:区域填充的解密与实战
【图形学】探秘图形学奥秘:区域填充的解密与实战
35 0
|
4天前
|
设计模式 算法 开发者
代码之美:探索编程艺术与实践的交汇点
【4月更文挑战第2天】 在数字世界的构建中,代码不仅仅是一种工具,它亦是艺术家手中的画笔。本文旨在探讨编程作为一种技术和艺术相结合的领域,揭示那些隐藏在代码背后的美学原则和创造力。我们将从编程的基础出发,逐步深入到设计模式、算法优雅性以及代码的可读性和维护性,最终探讨如何通过技术实现创新并解决问题。文章的目的是为那些渴望在技术实践中寻找创造性和美感的开发者提供灵感和指导。
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
相比优秀的服装设计师,AIGC 可以如何突破设计灵感的界限?是纯粹的机械语言还是一点点的灵光乍现?
这些日子学的那些 AIGC生图本领,这回用上啦!阿里云携手国民服装品牌森马推出 AIGC T 恤设计大赛,无论您是开发者、设计师、还是AI绘画爱好者,都可以使用阿里云函数计算快速部署 Stable Diffusion,以“宇宙漫游”为主题,进行AI 创作并投递作品即可参赛。所有作品均有机会被森马选中并购买版权成为下一季服装图案主题。
相比优秀的服装设计师,AIGC 可以如何突破设计灵感的界限?是纯粹的机械语言还是一点点的灵光乍现?
|
11月前
|
缓存 前端开发 JavaScript
🫧🫧🫧ServiceWorkerGlobalScope 让你重新认识 ServiceWorker
ServiceWorkerGlobalScope和上两章的概念基本相同,都是继承自WorkerGlobalScope,但是ServiceWorkerGlobalScope 是在ServiceWorke
86 0
|
11月前
|
算法
谈一谈|浅谈单纯形法其中奥妙
谈一谈|浅谈单纯形法其中奥妙
130 0
|
12月前
|
编解码 算法 数据库
你知道数字图像处理的经典Lenna图背后的故事吗
你知道数字图像处理的经典Lenna图背后的故事吗
|
机器学习/深度学习 人工智能 自然语言处理
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
195 0
深度之眼(二十一)——概率论
深度之眼(二十一)——概率论
深度之眼(二十一)——概率论
|
程序员 测试技术 开发者
以中国传统的孔子和老子的思想分析忍者代码
以中国传统的孔子和老子的思想分析忍者代码
627 0
以中国传统的孔子和老子的思想分析忍者代码
|
人工智能
带你读《少儿人工智能趣味入门动画与游戏编程一本通》之二:角色的基础:“运动”“外观”“声音”模块
Scratch是图形化的编程语言,它具有学习环境趣味性强、操作简单且直观等特点,很好适合6-12岁的孩子学习。本书是立足于Scratch 3.0版本的少儿编程入门书,能让孩子轻松愉快地掌握编程技能,锻炼和提高思维能力和创造力,为迎接人工智能时代的到来做好准备。本书以对Scratch中积木块的分类讲解作为主线,并将编程的核心思想融入大量精心设计的案例,让孩子在实际动手操作中更直观、更深刻地理解不同积木块的运用。本书对积木块的功能和用法解释详尽,语言通俗易懂,能够减少孩子对编程的畏惧心理,没有编程基础的家长也能陪伴孩子一起阅读,在融洽的亲子互动氛围中,自信、愉快地完成学习。