swift - `kCGImageSourceShouldAllowFloat` 用于图像 I/O 的目的是什么?
问题描述
在 macOS 上使用 Image I/O 时,有一个选项kCGImageSourceShouldAllowFloat
记录如下:
如果文件格式支持,图像是否应作为使用浮点值的 CGImage 对象返回。使用扩展范围浮点值的 CGImage 对象可能需要额外的处理才能以令人愉悦的方式呈现。
但它没有说明什么文件格式支持它或有什么好处,只是它可能会更慢。
有谁知道什么文件格式支持这个以及有什么好处?
解决方案
TIFF 文件支持浮点值。例如,每像素 128 位格式接受 32 位浮点分量。请参阅关于位图图像和图像蒙版。另请参阅支持的像素格式以获取图形上下文支持的像素格式表。
就浮点、每通道 32 位的好处而言,它只是意味着每个通道有更多可能的颜色渐变。通常,您无法用肉眼看到这一点(每个通道超过 16 位),但如果您开始应用调整(传统上是多曲线或水平调整),则意味着您不太可能体验到图像的分色。因此,如果 (a) 图像已经具有此级别的信息;(b) 您可能需要对图像执行这些类型的调整,然后每个组件添加 32 位的数据可能会有好处。否则,这些信息量的好处是有限的。
最重要的是,如果您可能正在编辑可能已经具有浮点组件的资产,请使用浮点。但通常我们不需要或使用这一级别的信息。无论如何,我们处理的大多数 JPG 和 PNG 资源每个组件都是 8 位。
推荐阅读
- css - 是否可以隐藏边框,保留其宽度?
- linux - 如何计算 .sh 文件
- xamarin.forms - 如何在 Xamarin Forms 中安排通知?
- reactjs - 选择任何选择选项代码来处理我的代码时,将日期更新为今天
- python-3.x - Facebook GraphAPI 版本中的错误 || GraphAPIError:有效的 API 版本为“2.8”、“2.9”、“2.10”、“2.11”、“2.12”、“3.0”、“3.1”
- reactjs - ag-grid 如何使用反应设置动态标题高度
- c# - List Foreach 中的可枚举变量
- node.js - Node JS - 将 .dat 转换为 .wav 文件
- python-3.x - 数据的日循环
- java - 获取 servicenow 访问令牌时遇到问题 401 未授权