Interface Builder 中的颜色错误

2023-11-24

问题:我在 Interface Builder 中设置了颜色,设置了 RGB 通道,然后对工作窗口进行了屏幕截图,在 Photoshop 中打开它,并通过颜色选择器(我在 Interface Builder 中设置)检查颜色。结果——RGB值和我设置的不一样。

Video: http://www.youtube.com/watch?v=ASLfnYHPbqM

最异常的是从第45秒开始,当时我尝试使用Interface Builder的颜色选择器。它显示RGB值与我安装的相同),但颜色选择器IB的值与颜色选择器Photoshop的值一致。


苹果认为更重要的是到处的颜色看起来都一样比颜色到处都有相同的 RGB 值。你看,相同的 RGB 值在不同的屏幕上看起来不会一样,因为每个屏幕都有不同的显示特性。

因此,当您截取屏幕截图时,Apple 不仅会存储图像中每个像素的 RGB 值,还会将显示器的显示特性存储在图像文件中。那有什么用呢?如果其他人打开您的屏幕截图,系统可以查看创建它的人的显示器特征,将其与想要观看它的人的显示器的显示器特征进行比较,然后可以计算出它必须如何采用 RGB 值使图像在当前显示器上看起来相同。如果它只是显示 RGB 值而不执行任何操作,则图像颜色可能看起来错误(在某些情况下只有轻微错误,在某些情况下更多,如果用户的显示器非常糟糕,在某些情况下甚至完全错误) 。

因此系统会向图形适配器发送不同的 RGB 值,因为 RGB 颜色本身并不能真正描述颜色。 RGB 值与显示器配置文件一起确实描述了颜色,但重要的不是 RGB 值,而是颜色。如果我制作红色的东西,我希望它在每台显示器上都是相同的红色阴影。我不希望在一台显示器上显示较深的红色,在另一台显示器上显示较浅的红色,在第三台显示器上显示接近粉红色的红色。

Photoshop 的问题在于它有自己的内置色彩校正机制。 Photoshop 通常在 sRGB(标准 RGB 色彩空间)或 Adob​​e RGB(Adobe 发明的扩展色彩空间)下工作。当您加载不在所需色彩空间内的图像时,Photoshop 将转换图像的色彩空间,并且每次色彩空间转换都会导致 RGB 值发生变化。请注意,Photoshop 中显示的图像仍然根据您当前的显示器颜色特征进行颜色校正,这只是您在 Photoshop 中操作的 RGB 值位于另一个颜色空间中,当存储回文件时,Photoshop 会将这些值转换回来或它将保留它们并将新的颜色配置文件嵌入到图像文件中。

单独使用 RGB 来描述颜色的时代已经结束很多年了。如今,RGB 本身毫无意义,只有与颜色配置文件结合使用时,它在描述实际颜色时才变得真正有意义。

如果您想要不嵌入真实颜色配置文件的屏幕截图,请执行以下操作:

  1. 打开“系统偏好设置”
  2. 转到“显示”
  3. 转到“颜色”
  4. 选择“通用 RGB 配置文件”
  5. 制作你的截图
  6. 改回您的个人资料

在更改配置文件之前可能需要先退出 Xcode(并在更改回来后重新启动它),因为我不确定更改配置文件是否会立即生效。它肯定会立即影响显示器上的显示方式,但如果您想通过选择特定的 RGB 值在 Xcode 中选择颜色,我不确定配置文件更改是否也会立即生效(您可以给它尝试不重新启动,如果不起作用,则必须重新启动重复)。

但这仍可能导致 Photoshop 中的颜色不正确,因为 Photoshop 仍可能将颜色转换为 sRGB 或 Adob​​e RGB。因此,您可能不想选择“通用 RGB 配置文件”,而是选择“sRGB”配置文件(根据您的 OS X 版本,也可能被命名为“sRGB IEC61966-2.1”)。这样图像就已经处于 sRGB 色彩空间中。您只需说服 Photoshop 保持这种方式(而不是将其转换为 Adob​​e RGB),然后您就会在 Xcode 和 Photoshop 中真正看到相同的 RGB 值。

请注意更改颜色配置文件如何使您的显示器看起来完全不同?你认为颜色变化很大吗?相信我,与不同的显示器有时会改变颜色相比,这根本不算什么。也许您现在可以理解为什么色彩校正如此重要了。那么问题是,为什么 RGB 值对您来说如此重要?只要显示的颜色相同,RGB 值就相同,这真的很重要吗?

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

Interface Builder 中的颜色错误 的相关文章

  • 停止在 iOS Web 应用程序上滚动屏幕边缘?

    正在开发 iOS 网络应用程序 用户可以上下滚动页面内容 但是 有没有办法阻止屏幕被拖动得太远以致灰色背景变得可见 这可以通过在移动 Safari 中打开任何网页并将页面下拉来复制 您可以使用诸如 Pastrykit 或 iScroll 之
  • 使用 iOS swift AVPlayer 在横向模式下不全屏

    我将视频视图设置为全屏 然而 在模拟器中玩时 它并没有全屏运行 此问题仅适用于 iPad 不适用于 iPhone 这是我的代码 override func viewDidAppear animated Bool super viewDidA
  • Facebook iOS 选择好友表空白

    我正在尝试将 选择的朋友 添加到我的 iOS 应用程序中 我设置了登录视图 登录后 我打开朋友选择器 但它显示为空白 我看到带有 完成 和 取消 按钮的表 但表中没有加载任何朋友 IBAction selectFriendsButtonAc
  • ios Facebook 添加 FBNativeAdView 作为子视图

    我想使用预建视图FBNativeAdView 不想自定义 FBNative 广告 如link https developers facebook com docs reference ios current class FBNativeAd
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • Cordova iOS 启动画面

    我无法让闪屏停留在页面加载之前 我已经阅读了谷歌搜索第一页 第二页和第三页中的所有条目 我阅读了 stackoverflow 上发布的所有问题 包括一个很好的解释 https stackoverflow com questions 1800
  • 在 SwiftUI 中,如何执行手势但将手势转发到其后面的视图?

    我正在创建一个工具提示系统 如果用户触摸工具提示之外的任何地方 我想关闭工具提示 我希望这样在工具提示之外的触摸既可以消除工具提示 又可以激活用户点击的任何控件 因此 您可以打开一个工具提示 然后仍然单击工具提示外部的按钮 并在第一次点击时
  • NSString 到 NSDate 的转换得到错误的结果[重复]

    这个问题在这里已经有答案了 可能的重复 NSDateFormatter 的时间错误 https stackoverflow com questions 5466419 wrong time from nsdateformatter NSDa
  • 如何在 Safari 上打开本地 html 文件?

    我想打开本地 html 文件Safari集成到我的Swift 3应用 我知道如何使用网址来做到这一点 这是我用来执行此操作的代码 let encodedString url addingPercentEncoding withAllowed
  • xcode“将源编译为”覆盖特定文件

    我有一个项目 必须将 编译源为 值设置为 Objective C 不 根据文件类型 在我的主项目中不起作用 我从框架 特别是 OpenFeint 获得的文件有问题 该文件在编译为 Objective C 时出现编译错误 error poin
  • 通过应用程序组在应用程序之间通信和保存数据

    iOS 8 昨天发布了一个有关应用程序组的新 API 以前在应用程序之间共享数据和通信有点混乱 我相信这正是应用程序组旨在纠正的问题 在我的应用程序中 我启用了应用程序组并添加了一个新组 但我找不到任何有关如何使用它的文档 文档和 API
  • Mapkit 在 IOS 13 中使用过多的 CPU

    最近 在一些用户更新到 iOS 13 x 后 我的 iOS 应用程序开始频繁崩溃 在 iOS 12 x 中没有出现该问题 我正在使用 Mapkit 渲染一些 MKPolygons 和 MKPolylines MKPolylines 被删除并
  • 如何在 iOS 中设置视图的最大宽度?

    我的应用程序有一个基本的登录屏幕 一个外框以及其中的一些文本字段和按钮 我将框设置为填满屏幕 然而 在某些设备上这个盒子会太大 如何设置视图的最大宽度和高度 您可以使用自动布局约束 使框适应屏幕尺寸 但不超过给定的宽度和高度 为此 请对宽度
  • 将 UIRefreshControl 用于 UIWebView

    我在 iOS 6 中看到了 UIRefreshControl 我的问题是是否可以通过下拉来刷新 WebView 而不是像在邮件中那样让它弹出 我使用 rabih 的代码是 WebView UIRefreshControl refreshCo
  • 以编程方式检测应用程序是否正在设备或模拟器上运行

    我想知道我的应用程序在运行时是在设备还是模拟器上运行 有没有办法检测到这一点 原因是用模拟器测试蓝牙 api http volcore limbicsoft com 2009 09 iphone os 31 gamekit pt 1 woo
  • 如何避免 NSNumberFormatter 中的四舍五入

    我试图拥有一个最大精度为 2 位小数的数字字符串 而其余小数只是被修剪掉而不是四舍五入 例如 I have 123456 9964 I want 123456 99 gt Just want to trim rest of the deci
  • iOS JPEG 图像旋转 90 度

    我正在使用选择器视图从相册中选择图像 我使用上面的代码 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDi
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • GoogleSignIn ios 附加到谷歌表格

    我目前正在开发一个 iOS 应用程序 该应用程序需要写入登录用户拥有的 Google 工作表 要登录我正在使用的用户GoogleSignInpod 并附加到我正在使用的谷歌表GoogleAPIClientForREST Sheets pod

随机推荐

  • 在 JavaScript 中,在循环内使用 wait 会阻止循环吗?

    采用以下循环 for var i 0 i lt 100 i let result await some slow async function do something with result Does await阻止循环 或者是i继续递增
  • 如何在 iOS 14 中使用 PHAuthorizationStatusLimited

    为了获取照片的创建日期 因此在显示 PHPickerViewController 之前使用 requestAuthorizationForAccessLevel PHAccessLevel level PHAccessLevelReadWr
  • Java 中的内核绕过网络[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 有谁知道如何在 Java 中绕过内核吗 任何地方你好世界或者这是火箭科学 如果您使用 S
  • 使用 CSS 将字段集居中

    我试图将包含登录 用户名 和 密码 字段的字段集居中到页面的中心 这是我所拥有的 fieldset border 1px solid rgb 255 232 57 width 400px float left 我希望字段集在窗口中居中 无论
  • 修改 emacs 向前单词/向后行为(就像 vi/vim 中一样)

    实现与 vim 中的单词来回导航相同的行为的最简单方法是什么 在vim中 当你按 w 它将光标向前移动一个单词 其中单词由一系列字母 数字和下划线组成 或者由一系列其他非空白字符组成 并用空格 空格 制表符 eol 分隔 另一方面 在 em
  • 如何在 C# 中设置 .net teradata 连接?

    我正在尝试使用 c 连接到 Teradata 我正在使用来自的示例代码这个网站 using System using System Collections Generic using System Text using Teradata C
  • 任务“:app:dexDebug”Android Studio 执行失败

    该应用程序能够在更新我的 android studio 之前执行 这是我收到的错误 Error Execution failed for task app dexDebug gt com android ide common process
  • 将 Java FX 2.0 添加到现有 Netbeans 项目

    我在 Netbeans 中有一个使用 Swing 的现有 Java 项目 我想开始对该项目中的某些组件使用 Java FX 2 0 我已经下载了最新版本的 JDK 1 7 0 03 并启用了 JavaFX 但是当我尝试添加import ja
  • 如何访问超级视图控制器?

    我有一个问题 我会尝试解释这个问题 我有一个主要的UIViewController 全屏 我有一个二级UIViewController 设定范围 我将辅助视图添加到了我的mainView使用这个 mainController view ad
  • java中数据库中的Json对象

    谁能帮我如何从数据库创建 JSON 对象 这就是JSON 输出应该看起来像 devicelist device id 01 type CAM name Livingroom id 15 type CAM name Kitchen This
  • 防止提交时默认:- Angularjs

    如果填写表单时电子邮件为空 我想防止 http post 的默认操作为 sign Up 控制器代码 scope signUp function if scope email null preventdefault html 玉 form n
  • PowerShell 复制项目方法失败 - 文件名中包含括号

    我正在尝试使用 PowerShell v 1 仅复制与模式匹配的文件 文件命名约定是 Daily Reviews 0001 0871 journal Daily Reviews 1002 9887 journal 当我运行它时 方法 Cop
  • 尝试在 WinXP 上使用 pyserial 打开串行端口 ->“访问被拒绝”

    我正在尝试使用 python 和 pyserial 通过串口将数据发送到 hplc 泵 我在 linux gentoo 的衍生版本 下测试了电缆和泵 尽管是 root 但它工作得很好 现在我必须在WinXP机器上使用代码 在尝试打开端口时我
  • Dapper.net Oracle 参数

    我正在尝试将 Dapper net 与 Oracle 一起使用 由此post我知道我们可以使用没有前缀的参数 然后 dapper 就可以同时使用sql serverand oracle 如果没有显式的 oracle 命名参数前缀 我很难让它
  • Javascript在数组中找到最接近的数字而不进行下探

    例如 我有一个数字数组 300 500 700 1000 2000 3000 我想找到最接近的数字 而不低于给定的数字 例如 搜索 2200 将返回 3000 而不是 2000 但是 如果我搜索 3200 因为数组中没有更高的值 它应该返回
  • 将php对象存储在html表单元素上并通过GET方法传递php对象?

    我可能听起来有点奇怪 但是有办法吗 例如 我有一个 PHP 对象 foo 有没有办法通过某些对象加密函数以 HTML 表单 隐藏输入 存储该对象 然后使用解密函数检索该对象 同样 我可以通过 GET 方法传递这些对象吗 就像其他地方已经指出
  • React useEffect 导致:无法对未安装的组件执行 React 状态更新

    获取数据时 我得到 无法在未安装的组件上执行 React 状态更新 该应用程序仍然有效 但反应表明我可能会导致内存泄漏 这是一个空操作 但它表明应用程序中存在内存泄漏 要修复此问题 请取消 useEffect 清理函数中的所有订阅和异步任务
  • C# 读取注册表:ProductID 在 x86 目标应用程序中返回 null。 “任何CPU”都可以正常工作

    我最近搬到了一台装有 VS 2010 的 W7 64 位机器 我的项目设置为运行Any CPU 当我将其更改为目标时x86我注意到我的一些注册表调用不再起作用 我正在尝试阅读ProductID像这样的字段 RegistryKey windo
  • Bootstrap carousel:如何同时滑动两个carousel滑块?

    我在单个页面上有三个轮播滑块 我希望它们同时移动其中两个 即两者应该同时更改滑块图像 两者都有相同数量的图像 幻灯片 这是我正在使用的代码 jQuery carousel example generic1 carousel example
  • Interface Builder 中的颜色错误

    问题 我在 Interface Builder 中设置了颜色 设置了 RGB 通道 然后对工作窗口进行了屏幕截图 在 Photoshop 中打开它 并通过颜色选择器 我在 Interface Builder 中设置 检查颜色 结果 RGB值