图像分辨率和图像大小的计算

2023-05-16

一、BMP位图

1.

一个实际例子,选择一个24位深度的225×225位图,

由于24位位图是真彩色,没有颜色表这一样,所以

其文件大小为152.154字节,则

152.154=14+40+(225×3+1)×225

注:因为1个像素用三个字节来表示,所以乘以3;因为位图存储时,Windows规定一个扫描行所占的字节数必须是
4的倍数(即以long为单位),不足的以0填充,225×3+1刚好是4的倍数;14和40是位图文件头和位图信息头的字节大小;


2.

当利用绘图程序将文件保存为256色,即8位深度的位图后,文件大小变为52.378字节,即

52.378 = 14 + 50 + 256 × 4 + (225 + 3)× 225

注:256色位图有颜色表,每个颜色表结构体是4字节,所以颜色表这一项占256*4 个字节;

225+3 刚好凑成4的倍数


3.

从上面的两个例子可知,对于bmp位图,由于存储时无压缩,我们可以从像素总量(比如上面的255*255)以及位图存储格式中,算出一幅位图占用的字节数;

也即是说,如果几幅位图都是 1280*960,并且都是8位深度,那么它们占用的存储大小都是一样的~

(葫芦岛相机拍摄的图片,大小为:14+40+256*4+1280*960字节,约为1.17MB~)

对于从网上随便下载的一幅图片,可能是jpg、png、bmp等多种格式,我们光知道他们像素总数是1280*860,是无法计算出图片大小的~~因为压缩方式、编码等都不一样


4.

我们通常说,一幅图片的分辨率是1280*960,这个其实并不准确~
图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,即:像素每英寸,单位为PPI(Pixels Per Inch)。一般来说,很少用分辨率这个概念来衡量电子图片。
但是,在生活中, 图像分辨率是一个被混用到电子图片的概念,原本含义的目的是“密度”决定“打印质量”,后来被混用,或者说错误的用做衡量图像内的像素点数量。


1920*1200是像素总量,不是密度,密度要除以英寸才是,存储在图像头部信息中,用于打印设置。

5.
用浏览器截图工具截取一幅图片,保存在windows画图工具中,假设截取的宽度为1280,高度为960


当我们用不同的格式进行保存(比如8位位图、24位位图、jpg、png等不同格式),最后在电脑上显示的图片尺寸都为:1280*960,而图片的存储大小都不一样~~
我们用不同方式存储时,图片的像素总数是不变的,都为1280*960,只不过每个像素需要的字节数不一样,所以文件大小也不一样~即便是jpg等压缩格式,像素的个数并没有被压缩,只是针对不同的像素点,可能需要的字节数不一样


6.  

两个相同尺寸1920*1200的图像,在相同色彩度(如24位真彩)情况下,无压缩的BMP位图的大小是相同的。
而你看到文件大小的不同,是因为图像压缩算法造成的(无压缩文件会非常大,一般为BMP格式),图像压缩是个比较大的课题,分为无损压缩(PNG等)和有损压缩(JPG等),具体压缩算法非常多,各有优劣。
以最常见的JPG为例,其压缩算法是有损的,压缩后的文件大小有几个重要的决定因素:原图尺寸、有损程度、图像中相邻点色差,图像中存在色彩数量等等。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像分辨率和图像大小的计算 的相关文章

  • STM32F0 HAL库的串口中断调用顺序

    首先在主函数里执行发送中断或者接收中断函数 xff1a HAL UART Receive IT amp UartHandle uint8 t RxBuf 1 HAL UART Transmit IT amp UartHandle uint8
  • 最全综述 | 图像分割算法

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 图像分割是计算机视觉研究中的一个经典难题 xff0c 已经成为图像理解领域关注的一个热点 xff0c 图像分割是图像分析的第一
  • CNN的Flatten操作 | Pytorch系列(七)

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 文 AI study 欢迎回到这个关于神经网络编程的系列 在这篇文章中 xff0c 我们将可视化一个单一灰度图像的张量flat
  • PyTorch中Linear层的原理 | PyTorch系列(十六)

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 文 AI study 原标题 xff1a PyTorch Callable Neural Networks Deep earn
  • python-opencv报错:QObject::moveToThread: Current thread

    报错 xff1a QObject moveToThread Current thread 0x55ab2a343120 is not the object s thread 0x55ab2a4f8820 Cannot move to tar
  • 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!

    En点击下方 AI算法与图像处理 xff0c 一起进步 xff01 重磅干货 xff0c 第一时间送达 大家好 xff0c 我是 阿潘 xff5e 我在b站刷到了一个博主分享最新的算法 xff0c 用AI生成高质量的插画 本文主要是分享现在
  • ikun必学!python 画一个简单的只因

    大家好呀 xff0c 我是阿潘 现在有很多虚假的ikun 1 看似维护鸡哥 xff0c 实则想吃鸡哥下的蛋 每次看到这种网络攻击 xff0c 鼻子一酸 xff0c 泪流不止 这个世界太不友善了 xff0c 真的不知道面对那么多无端的谩骂他是
  • CVPR2023论文速递(2023.3.23)!已接入ChatGPT总结!共26篇!

    整理 xff1a AI算法与图像处理 CVPR2023论文和代码整理 xff1a https github com DWCTOD CVPR2023 Papers with Code Demo 欢迎关注公众号 AI算法与图像处理 xff0c
  • 5个python常用的装饰器!

    大家好呀 xff0c 我是阿潘 首先 xff0c 每个开发人员的目标都是让事情正常进行 慢慢地 xff0c 我们担心可读性和可扩展性 这是我们第一次开始考虑装饰器的时候 装饰器是为函数提供额外行为的绝佳方式 使用装饰器 xff0c 你会惊讶
  • PerSAM!单图即可定制专属SAM模型!支持微调,甚至可增强DreamBooth

    大家好呀 xff0c 我是阿潘 Meta 的 Segment Anything Model 着实火了一把 xff0c 今天来和大家分享一篇相关的研究成果 xff0c 论文和代码都已开源 xff1a 从标题的字面意思应该就是指仅需一个样本即可
  • Python绘制可爱的卡通人物 | 【turtle使用】

    Turtle库 简介 什么是Turtle 首先 xff0c turtle库是一个点线面的简单图像库 xff0c 能够完成一些比较简单的几何图像可视化 它就像一个小乌龟 xff0c 在一个横轴为x 纵轴为y的坐标系原点 xff0c 0 0 位
  • STM32 Keil5 Bug记录 汇总和解决办法

    STM32 Keil5 Bug记录 汇总和解决办法 文章目录 STM32 Keil5 Bug记录 汇总和解决办法前言一 Warning1 warning no newline at end of file2 warning function
  • STM32重要源文件和头文件说明

    对于STM32F4xx StdPeriph Driver xff0c 其重要源文件为 xff1a stm32f4xx ppp h xff1a 外设头文件 这里的ppp只是一个代码 xff0c 在实际上是具体的外设名字 xff0c 如ADC
  • 带参宏定义和带参函数的区别

    在带参宏定义中 xff0c 不会为形式参数分配内存 xff0c 因此不必指明数据类型 而在宏调用中 xff0c 实参包含了具体的数据 xff0c 要用它们去代换形参 xff0c 因此必须指明数据类型 这一点和函数是不同的 xff1a 在函数
  • “段寄存器”的故事

    一 段寄存器的产生 段寄存器的产生源于Intel 8086 CPU体系结构中数据总线与地址总线的宽度不一致 数据总线的宽度 xff0c 也即是ALU 算数逻辑单元 的宽度 xff0c 平常说一个CPU是 16位 或者 32位 指的就是这个
  • 阿里面试官:为什么MySQL数据库索引选择使用B+树而不是跳表?

    来源 xff1a https www cnblogs com andydao p 12891690 html 作者 xff1a andydaopeng 在进一步分析为什么MySQL数据库索引选择使用B 43 树之前 xff0c 我相信很多小
  • AD生成bom表

    1 Report Bill of material 2 可通过点击右侧的Columns xff0c 更改导出属性 3 点击Preview 查看生成的excel文件 4 生成的 excel文件 注 xff1a 出bom表的原理图需要在工程里
  • 你对Linux下的实时性应该多点了解

    本文讲述一些有利于提高xenomai实时性的配置建议 xff0c 部分针对X86架构 xff0c 但它们的底层原理相通 xff0c 同样适用于其他CPU架构和系统 xff0c 希望对你有用 一 前言 1 什么是实时 实时 一词在许多应用领域
  • HTTP/3.0 ,它来了!

    HTTP 3 0 是 HTTP 协议的第三个主要版本 xff0c 前两个分别是 HTTP 1 0 和 HTTP 2 0 xff0c 但其实 HTTP 1 1 我认为才是真正的 HTTP 1 0 我们大家知道 xff0c HTTP 是应用层协
  • 简单聊聊从 nginx 到 kong 的进化

    在我们的传统业务中 xff0c Nginx 在七层网关场景中应用得很广 但是最近几年由于微服务的盛行 Nginx 上的这套生态链也在不断地进化 2007 年国人章亦春大神在 Nginx 的基础上开发出了 OpenResty 2009 年 m

随机推荐

  • golang中的缓存一致性、内存序、内存屏障与CAS原理

    CPU缓存架构 现代处理器一般是多核架构 xff0c 并且为了平衡CPU和内存的速度差距 xff0c 还引入了多级Cache CPU Cache 是由很多个 Cache Line 组成 xff0c 每个Cache Line大小为64KB C
  • HashMap与红黑树

    一 为什么需要HashMap 在我们写程序的时候经常会遇到数据检索等操作 xff0c 对于几百个数据的小程序而言 xff0c 数据的存储方式或是检索策略没有太大影响 xff0c 但对于大数据 xff0c 效率就会差很远 1 线性检索 xff
  • docker执行报错:no such file or directory: unknown

    在linux下编译的golang程序放到docker的busybox镜像里无法执行 xff0c 显示报错信息 xff1a exec No such file or directory 在Docker化的今天 xff0c 我们经常需要静态编译
  • 香烟价格

    上海地区报价 欢迎补漏 改错 有的价格过高或偏底是地域不同 品名 产地 批发 零售 白沙 xff08 硬盒 xff09 长沙卷烟厂 42 00 4 50 白沙 xff08 软盒 xff09 长沙卷烟厂 37 00 4 00 芙蓉 xff08
  • java关键字Transient

    Java的serialization提供了一种持久化对象实例的机制 当持久化对象时 xff0c 可能有一个特殊的对象数据成员 xff0c 我们不想用serialization机制来保存它 为了在一个特定对象的一个域上关闭serializat
  • 拨打国际电话的国际字冠和国家代码

    中国 字冠 代码 中国大陆 00 86 中国香港 001 852 中国澳门 01 853 中国台湾 002 886 其它国家或地区 序号 国家 国际字冠 国家代码 1 美国 011 1 2 加拿大 011 1 3 智利 0 56 4 秘鲁
  • VirtualBox Host-Only 连接设置

    1 VirtualBox连接方式选择 xff1a Host Only 在宿主机windows上会自动新建连接 xff1a VirtualBox Host Only Network 2 启用宿主机windows的连接共享 xff0c 此时Vi
  • 基于HHARM9-EDU的TCP/IP(UDP)协议的实现

    基于HHARM9 EDU的TCP IP UDP 协议的实现 摘 要 xff1a 嵌入式技术的发展日新月异 xff0c 现如今 xff0c 嵌入式设备已经广泛应用于各种网络 xff0c 本文简要地说明一下如何实现 PC 与 HHARM9 ED
  • 简单的linux c socket例子

    服务端代码 xff1a span style color 000000 span style color 0000cc span span style color ff0000 include span span style color 0
  • Mask R-CNN图像识别和分割实现步骤(二)

    一 搭建环境 xff08 widdows10 xff09 xff08 一 xff09 安装anaconda3 1 下载地址 xff1a Anaconda Individual Edition 2 安装步骤 xff1a 图上双击 xff0c
  • C++ STL

    C 43 43 STL vector 变长数组 xff0c 倍增的思想 size 返回元素个数 empty 返回是否为空 clear 清空 front back push back pop back begin end 支持比较运算 xff
  • 结构体对齐规则

    结构体对齐规则 xff1a 1 第一个成员在于结构体变量偏移量为0的地址处 2 其他成员变量要对齐到某个数字 xff08 对齐数 xff09 的整数倍的地址处 对齐数 61 编译器默认的一个对齐数 与 该成员大小的 较小值 3 结构体总大小
  • 串口通信数据位长度对传输数据的影响

    针对串口通信 xff0c 关于设置数据位长度对通信的影响 xff0c 如图 xff1a 在串口数据通信中 xff0c 会看到串口参数设置 其中 数据位 设置 xff0c 共有四档选项 xff0c 分别是8 7 6 5 那么改变这个参数会对数
  • 建议收藏丨你想了解的动捕内容全在这儿!

    导语 对于第一次听说动作捕捉的大多数人而言 xff0c 动作捕捉听起来是一个 34 高级 34 同时 摸不清门路 的词汇 它作为虚拟与现实的沟通桥梁 xff0c 被应用于科学研究 影视制作 虚拟主播 体育运动 步态分析等广泛领域 xff0c
  • ROS速成之发送&接收消息

    人真的老了 xff0c 扔了个周末 xff0c 完全不记得干了什么 论纪录的重要性啊 xff0c 当时觉得明白的很 xff0c 你扔两天试试 xff1f 扔一年试试 xff1f 扔几年试试 xff1f 最近参加的各种项目脑疼眼乏 xff0c
  • MFC VC 双缓冲绘图基本原理与实现,详细解释

    MFC VC 双缓冲绘图基本原理与实现 xff0c 详细解释 MFC做了一些时间了 xff0c 不得不面对 的是在界面上画图的 当然你可以直接搜索到能用的代码 xff0c 并且基本能满足要求 不过这样总不是学习的态度 本着学习分享的态度 x
  • 关于dlg.DoModal()==IDOk的理解

    问题1 xff1a if dlg DoModal 61 61 IDOK 怎么理解啊 xff1f 问题2 xff1a 当我 CMyDlg dlg 时 xff0c 对话框显示了吗 xff1f 是不是要写dlg DoModal 这时对话框才显示出
  • 关于中值滤波算法,以及C语言实现

    1 什么是中值滤波 xff1f p p p style line height 28px margin top 0px margin bottom 10px padding top 0px padding bottom 0px color
  • (重)python:subprocess模块之Popen方法简介,管道机制(stdout\stdin\stderr)实现shell命令执行

    subprocess是Python 2 4中新增的一个模块 xff0c 它允许你生成新的进程 xff0c 连接到它们的 input output error 管道 xff0c 并获取它们的返回 xff08 状态 xff09 码 本文主要举例
  • 图像分辨率和图像大小的计算

    一 BMP位图 1 一个实际例子 xff0c 选择一个24位深度的225 225位图 xff0c 由于24位位图是真彩色 xff0c 没有颜色表这一样 xff0c 所以 其文件大小为152 154字节 xff0c 则 152 154 61