Bgr32 PixelFormat 中的第四个通道是什么

2023-11-23

我目前正在用 C# 做一些图像处理工作,我对 Bgr32 Pixel 格式感到困惑。以下描述来自于microsoft msdn:http://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats(v=vs.110).aspx

  1. Bgr24是一种 sRGB 格式,每像素 24 位 (BPP)。每个颜色通道(蓝色、绿色和红色)分配为每像素 8 位 (BPP)。 ✓
  2. Bgra32是一种 sRGB 格式,每像素 32 位 (BPP)。每个通道(蓝色、绿色、红色和 Alpha)分配有 8 位/像素 (BPP)。 ✓
  3. Bgr32是一种 sRGB 格式,每像素 32 位 (BPP)。每个颜色通道(蓝色、绿色和红色)分配为每像素 8 位 (BPP)。 -> (⊙.☉)?WTF

3 个通道,每个 8 位 -> 3x8bit = 24bit

最后一个通道/剩余的 8 位是做什么用的?

提前致谢


它没有被使用,但将颜色表示为整数有实际原因,无论是读取还是写入,它都是对齐的。

最后它表示 24 位颜色,最接近的表示它的类型是 32 位整数。用两个整数来表示这种颜色会有点奇怪:一个 16 位(短)整数和一个 8 位(字节)整数。

现在有25%的空间没有被利用,这最终是一种浪费。

与 RGB24 相比,使用它更有意义,因为颜色由一个整数表示,而前者必须是 3 个字节。显然,您必须拆开包装才能获得不同的组件,但如今这些操作确实很便宜。

就我个人而言,仅当存在内存限制或任何其他类型的限制(例如硬件)时,我才会使用 RGB24。其他任何东西我都会选择 RGBA 甚至 PBGRA,因为它有很多好处,例如透明度,并且可以在位块传送操作期间节省额外的计算,以及更好地混合透明轮廓。

为了了解这种代表可以为您带来的好处,我建议您看一下这个问题:预乘 Alpha 合成(看看我发布的结果)

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

Bgr32 PixelFormat 中的第四个通道是什么 的相关文章

随机推荐

  • 类型“System.Web.IHtmlString”在未引用的程序集中定义

    现在有点失落 我正在按照以下文章来测试 学习嵌套布局 http blogs msdn com b marcinon archive 2010 12 15 razor nested layouts and redefine sections
  • 如何从 XSD 架构构建数据库并导入 XML 数据

    我有一个复杂的 XSD 架构和数百个符合该架构的 XML 文件 如何自动创建相关的 SQL Server 表来存储 XML 数据 我考虑过使用 XSD 模式创建 C 类xsd exe工具 并让 Subsonic 之类的东西弄清楚如何从中创建
  • Visual Studio 2012 中的经典 ASP 调试禁用应用程序调试

    我想调试Classic ASP网站位于Visual Studio 2012 with IIS Express 因此 我附上了iisexpress exe in VS 2012 但它显示Application Debugging is dis
  • 检测并删除文本区域中的 URL

  • Kendo UI Grid 序列号列

    我试图将 Kendo 网格的第一列作为串行索引 它不受行记录排序的影响 我有什么办法可以实现这个目标吗 谢谢 您可以使用模板列来实现此目的 这是一个现场演示 展示了如何做到这一点 http jsbin com olutin 10 edit
  • 为什么 Python 返回负时区值?

    For 时间 时区 Python 文档说 本地 非 DST 时区的偏移量 以 UTC 以西的秒数为单位 西欧大部分地区为负值 美国为正值 英国为零 有谁知道为什么它对西欧大部分地区返回负值 这些国家处于正抵消状态 而不是负抵消状态 示例 布
  • iOS 8 中自动调整 UITableViewCell 大小

    我有一个 UITableViewCell 子类 其中包含多行标签 我希望单元格根据该标签的内容动态调整自身大小 我知道 iOS 8 引入了基于自动布局约束的自动调整单元格大小 并且我已经在 SO 上找到了几个这样的示例 但我在正确实现此行为
  • 如何默认将AWS S3存储桶中的所有对象设为公开?

    我正在使用 PHP 库将文件上传到我的存储桶 我已将 ACL 设置为公共读写它工作正常 但文件仍然是私有的 我发现如果我改变受赠者给所有人它使文件公开 我想知道的是我该如何制作所有对象的默认受让人在我的桶中设置为 每个人 或者还有其他解决方
  • 在 AngularJs 中使用 $resource 来保存对象数组

    我在用 resource使用查询从服务器检索数据 服务器返回一个对象数组 我将其存储在斯图克利斯特 我可以发送 更新的 内容斯图克利斯特通过循环数组并使用 save 将数组的每个项目发送回服务器来返回到服务器 我现在想发送所有项目 整个斯图
  • iPhone - 读取Setting.bundle返回错误值

    我创建了一个 Settings bundle 其中包含 Root plist 文件和本地化目录 en lproj 我已经编辑了 Root plist 并添加了一些我想要为我的应用程序设置的设置 当我从 iPhone 中删除该应用程序并安装它
  • 更新到 Android Studio 后模拟器无法启动

    我已经通过标准更新通道将android studio更新到3 0 更新后无法启动模拟器 我已经尝试过以下方法 但没有任何效果 重新启动并重新安装 HAXM 安装程序 重新启动并重新安装 AVD 管理器 从终端启动模拟器 将 RAM 大小更改
  • 如何将 Kubernetes 集群更新到可用的最新版本?

    我最近开始尝试Google Container Engine 我希望您将 Kubernetes 集群升级到可用的最新版本 如果可能的话 不要停机 有什么办法可以做到这一点吗 不幸的是 我们目前拥有的最佳答案是创建一个新集群并将资源移过来 然
  • 如何使用 JavaScript 进行 LDAP 查询?

    我正在尝试制作一个具有 LDAP 查询功能的侧边栏小工具 但一直无法找到关于此事的非常好的或任何有用的文档 我对 Javascript 没有太多经验 并且对 LDAP 查询的功能知之甚少 所以任何信息都会有用 info 主持人 ab c d
  • R (data.table) 按自定义范围对数据进行分组(例如,-18、18-25、...、65+)

    我无法在 R 中找到解决方案 使用 data table 来按自定义范围 例如 18 18 25 65 而不是按单个值对数据进行分组 我现在正在使用的 DT list M Savings mean Savings M Term mean T
  • JTextArea 中的撤消功能

    我正在尝试实现撤消功能JTextArea 谷歌搜索教程并按照其中一个教程编写了以下代码 当按下 Ctrl Z 键时会触发该事件 它不适合我 我错过了什么吗 private void undoActionPerformed java awt
  • aiobotocore - 导入错误:无法导入名称“InvalidIMDSEndpointError”

    下面的代码引发导入异常 import s3fs fs s3fs S3FileSystem anon False 例外 Traceback most recent call last File issue py line 1 in
  • 通过environment.yml使用conda安装npm包

    我想知道是否可以直接通过 conda 安装 npm 包environment yml文件 我知道可以安装pypi包与pip直接如下 name docs channels conda forge dependencies python gt
  • 什么是 Android“提取文本 UI”?

    我最近遇到了一个错误 我的小 EditText 不断膨胀以填充软键盘未占用的任何空间 但仅限于横向模式 我发布了此内容 并得到了一位乐于助人的 StackOverflow 成员的快速回复 我需要添加该内容android imeOptions
  • 如何在cakephp表单中使用jquery.validate插件

    我的 jQuery 代码是 document ready function StudentRegisterForm validate rules email required true email true 在我的表单电子邮件中 td td
  • Bgr32 PixelFormat 中的第四个通道是什么

    我目前正在用 C 做一些图像处理工作 我对 Bgr32 Pixel 格式感到困惑 以下描述来自于microsoft msdn http msdn microsoft com en us library system windows medi