本文为个人博客备份文章,原文地址:

http://validvoid.net/win2d-pixel-formats/

DirectXPixelFormat 枚举 包含了 Direct3D 和 DXGI 所使用全部各种像素格式,但其中只有部分被 Win2D 所支持 (或被 Win2D 构建的基础—— Direct2D 所支持)。

如果不确定该采用哪种格式,默认选择 B8G8R8A8UIntNormalized 作为像素格式以及 Premultiplied 作为 CanvasAlphaMode (场景 Alpha 模式)适用于大多数场景。

以下列出的所有格式均被 Direct3D 特性等级 11 的 GPU 硬件(用于桌面计算机以及多数平板电脑)所支持。特性等级 9 的 GPU (常用于手机)仅支持一个子集。如果你想要使用某个标记为“并非所有设备支持”的格式,你需要在资源创建失败时捕获相应的异常并自动选择一种通用有效的选项。

CanvasBitmap 格式

DirectXPixelFormat 兼容的CanvasAlphaMode 备注
B8G8R8A8UIntNormalized Premultiplied, Ignore 默认格式
B8G8R8A8UIntNormalizedSrgb Premultiplied, Ignore 并非所有设备支持
B8G8R8X8UIntNormalized Ignore  
R8G8B8A8UIntNormalized Premultiplied, Ignore  
R8G8B8A8UIntNormalizedSrgb Premultiplied, Ignore 并非所有设备支持
R16G16B16A16Float Premultiplied, Ignore 并非所有设备支持
R32G32B32A32Float Premultiplied, Ignore 并非所有设备支持
R16G16B16A16UIntNormalized Premultiplied, Ignore 并非所有设备支持
R8G8UIntNormalized Ignore 并非所有设备支持
R8UIntNormalized Ignore 并非所有设备支持
A8UIntNormalized Premultiplied, Straight  
BC1UIntNormalized Premultiplied, Ignore 尚未完全被 Win2D 支持1
BC2UIntNormalized Premultiplied, Ignore 尚未完全被 Win2D 支持1
BC3UIntNormalized Premultiplied, Ignore 尚未完全被 Win2D 支持1

1 Win2D 尚不完全支持块压缩格式(BC1、BC2 以及 BC3)。虽然可以通过 CanvasBitmap.CreateFromBytes 创建块压缩位图,并从原生 Direct2D 或 Direct2D 进行绘制和交互,但 Win2D 没有提供任何加载此类格式图像的途径,GetPixelBytesSetPixelBytes 以及 CopyPixelsFromBitmap 方法也不能对分块压缩数据正常使用。在 Win2D 的未来版本中将会改进这一情况。

CanvasRenderTarget 格式

DirectXPixelFormat 兼容的 CanvasAlphaMode 备注
B8G8R8A8UIntNormalized Premultiplied, Ignore 默认格式
B8G8R8A8UIntNormalizedSrgb Premultiplied, Ignore 并非所有设备支持
R8G8B8A8UIntNormalized Premultiplied, Ignore  
R8G8B8A8UIntNormalizedSrgb Premultiplied, Ignore 并非所有设备支持
R16G16B16A16Float Premultiplied, Ignore 并非所有设备支持
R32G32B32A32Float Premultiplied, Ignore 并非所有设备支持
R16G16B16A16UIntNormalized Premultiplied, Ignore 并非所有设备支持
A8UIntNormalized Premultiplied, Straight  

CanvasSwapChain 格式

DirectXPixelFormat 兼容的 CanvasAlphaMode 备注
B8G8R8A8UIntNormalized Premultiplied, Ignore 默认格式
R8G8B8A8UIntNormalized Premultiplied, Ignore  
R16G16B16A16Float Premultiplied, Ignore 并非所有设备支持

Win2D 官方文章系列翻译 - 像素格式的更多相关文章

  1. Win2D 官方文章系列翻译 - DPI (每英寸点数)和 DIPs(设备独立像素)

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-dpi-dips/ 本文旨在解释物理像素与设备独立像素(DIPs, device independent pi ...

  2. Win2D 官方文章系列翻译 - 预乘 Alpha

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-premultiplied-alpha/ 在计算机绘图中有两种表示颜色值不透明度的方法.Win2D 中两种方法 ...

  3. Win2D 官方文章系列翻译 - 幕后绘制

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-offscreen-drawing/ 应用有时需要将图形绘制到并不立即显示的目标上.此类绘制动作被称作“幕后绘 ...

  4. Win2D 官方文章系列翻译 - 调整控件分辨率

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-choosing-control-resolution/ 本文旨在讲解如何配置 Win2D XAML 控件使用 ...

  5. Win2D 官方文章系列翻译 - 处理设备丢失

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-handling-device-lost/ “设备丢失”是指 GPU 设备失效无法继续进行渲染的情况.GPU ...

  6. Win2D 官方文章系列翻译 - 避免内存泄漏

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-avoiding-memory-leaks/ 在托管 XAML 应用中使用 Win2D 控件时,必须谨慎处理对 ...

  7. Win2D 官方文章系列翻译 - 与 Direct2D 互操作

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-interop-with-direct2d/ Win2D 作为 Direct2D 的上层实现,支持与其进行双向 ...

  8. 在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  9. NLog文章系列——如何配置NLog(转)

    NLog使用方法 作者:Jaros?aw Kowalski <> 翻译:CrazyCoder(由衷感谢他的热心!!) 原文:http://www.nlog-project.org/conf ...

随机推荐

  1. java基础之语法和开发规则

    一. 代码书写的规则 以下面为例: 先写好结构 注意:为了避免错误,写代码时先把括号打齐,然后再补内容,每个”{}”里的内容开始写时要相比上一行多8个空格.为了方便可以用键盘上的 键代替(一般情况下时 ...

  2. go语言实战教程之 后台管理页面统计功能开发(2)

    上节内容介绍了后台管理页面统计功能开发(1),从功能介绍,到接口请求分析和归类,最后是代码设计.经过上节内容的介绍,已经将业务逻辑和开发逻辑解释清楚,本节内容侧重于编程代码实现具体的功能. 当日增长数 ...

  3. beijing(数学题)

    beijing(数学题) 甲和乙随机进行2n+1场n胜球赛,赌球必须对每场球赛单独押注.由于小明是甲队的铁杆球迷,现在小明希望如果甲最终获胜,那么他获得\(2^{2n-1}\)元,否则乙队获胜,他失去 ...

  4. BZOJ 3028: 食物

    \(\color{#0066ff}{ 题目描述 }\) 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮 ...

  5. ubuntu14.04 搭建samba

        1.安装软件      sudo apt-get remove libwbclient0      sudo apt-get remove samba-common      sudo apt ...

  6. js按回车事件提交

    $(document).keyup(function (event) { if (event.keyCode == "13") { document.getElementById( ...

  7. 14.Diameter of Binary Tree(二叉树的直径)

    Level:   Easy 题目描述: Given a binary tree, you need to compute the length of the diameter of the tree. ...

  8. kuangbin专题十六 KMP&&扩展KMP HDU3613 Best Reward(前缀和+manacher or ekmp)

    After an uphill battle, General Li won a great victory. Now the head of state decide to reward him w ...

  9. APP设计规范

    设计师DPI指南 本指南旨在为初级到中级设计人员提供“入门”或介绍性阅读,他们希望从一开始就学习或获得有关跨DPI和跨平台设计的更多知识. 尽可能少的数学和没有不可解析的图形,只需在简短的部分中订购直 ...

  10. 洛谷1026(字符串dp)

    常规dp.看到数据很小就直接暴力了,没有预处理.kmp好像过分了-- #include <cstdio> #include <cstring> #include <ios ...