- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于我正在处理的应用程序,我正在尝试创建和比较(之间的距离)CIE Lab异形颜色。
我知道有ways of converting来自典型的 RGB至 Lab需要一些数学知识,但如果可能的话,我想以更优雅的方式做到这一点。
到目前为止,我已经尝试了以下...(白/黑点和范围数字来自 here )
const CGFloat *components = CGColorGetComponents([UIColor colorWithRed:.11 green:.33 blue:.55 alpha:1.0].CGColor);
float whitePoint[3] = {0.95, 1.0, 1.09};
float blackPoint[3] = {0.0,0.0,0.0};
float range[4] = {-127.0,127.0,-127.0,127.0};
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateLab(whitePoint, blackPoint, range);
[self.someArray addObject:[UIColor colorWithCGColor:CGColorCreate(colorSpaceRef, components)]];
我不确定这是否是在这个空间中创建颜色的正确方法,特别是因为 UIColor 使用的 RGB 空间首先比 Lab 更受限制!此外,在从 CGColor 到 UIColor 的转换过程中,我会失去我的色彩空间吗? (图像中最大的颜色空间是 LAB)
还有一点需要考虑的是,iDevice 屏幕能否正确显示 Lab 颜色(因为它们的像素使用 RGB)?
本质上,我正在寻找这种在实验室空间内生成随机颜色的正确方法。
然后一旦我有了这些 Lab 颜色,我怎样才能得到三个值(L、a 和 b)来计算一种颜色和另一种颜色之间的距离?一旦我创建了一种颜色并将其封装在 UIColor 中,读取和比较 UIColor 的 CGComponents 是否会保持我正在寻找的准确性?(我之前在 RGB 空间中通过采用欧几里得距离完成了此操作,这里应该是相同的概念,除了距离将考虑到人类感知差异 ,这就是我正在努力做的事情。)
###如果你已经读到这里,我感谢你,并感谢你提供的任何输入或可以分享的类似经验!###
最佳答案
首先,您的图片具有误导性。它将色域外的颜色显示为色域内的颜色,针对不同的色度显示不同的亮度,并且缺少嵌入的颜色配置文件。
其次,iOS 设备到目前为止还没有进行颜色校准。它们用于许多不同的环境,因此校准不会那么有用。因此,您不能指望能够计算出用户可能会感知到哪种颜色。我将它们视为 sRGB 显示器。
第三,无论 RGB 原色如何,所有 CIELAB 颜色都不能转换为有效的 RGB 值。
如果您希望对 CIELAB 空间的有效颜色进行统一采样,我建议生成 L*a*b* 坐标并丢弃无效值。
CGFloat r,g,b;
while(1) {
CGFloat L = random_from_range(0., 100.);
CGFloat a = random_from_range(-128., 128.);
CGFloat b = random_from_range(-128., 128.);
CIELAB_to_sRGB(L,a,b,&r,&g,&b);
if ( 0.0 <= r && r <= 1.0 && 0.0 <= g && g <= 1.0 && 0.0 <= b && b <= 1.0 ) {
break;
}
}
关于ios - 在 iOS 中创建/比较 Lab-profiled 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7380690/
在 Python 2.7 和 Python 3.6 中,我发现这有效: from cProfile import Profile; p = Profile(); p.enable() ...而这引发了
我正在尝试在 Windows 8 PRO 64 位上的 Visual Studio 2012 RTM 中为控制台程序启动性能分析 session (分析/启动性能分析)。 我收到一条弹出消息通知我 C
我在 windows 上有一个应用程序,它在单声道上运行得很好。但是,当我尝试对其进行分析时: mono --profile=log program.exe 我得到: The 'log' profil
我正在尝试使用 Django 创建注册表单。我在提交表单时收到此错误。 这就是我所做的。 models.py from django.db import models from django.cont
是否可以从 Flash Builder 导出分析结果? 我需要它们,因为我想根据方法名称进行过滤,但 Flash Builder 的内置过滤不允许这样做。 最佳答案 它隐藏在 GUI 的一个完全隐蔽、
我真的很喜欢热图,但我需要的是热图背后的数字(又名相关矩阵)。 有没有简单的方法来提取数字? 最佳答案 从文档开始追踪有点困难;具体来说 来自 report structure然后深入研究以下函数 g
我有一个 POM,它声明了我的项目常见的 Web 应用程序内容。我将它用作所有 Web 应用程序的父级。 是否可以仅在包装为 war 时激活配置文件?我已经尝试过属性方法,但这不起作用(因为它不是系统
在数据帧上运行 pandas-profiling 时,我看到它将索引分析为一个变量。注意:我的索引是唯一键(命名为UUID) 有没有办法排除引入索引上报? 我知道我可以在 pandas 中删除它,但在
在数据帧上运行 pandas-profiling 时,我看到它将索引分析为一个变量。注意:我的索引是唯一键(命名为UUID) 有没有办法排除引入索引上报? 我知道我可以在 pandas 中删除它,但在
我正在使用 Intel Vtune 来分析需要在另一台机器上进行 sudo 访问的远程应用程序。之前我已经能够在不需要 sudo 访问的那台机器上分析远程应用程序,但英特尔 Vtune 不适用于需要
我已经在我的 MVC 4 应用程序上安装了 Mini-Profiler,它运行得非常棒。我遇到的唯一问题是 UI 覆盖了我 UI 的关键部分。我可以使用 css 在页面上移动它,但理想情况下我想这样做
在使用 Chrome devtools 分析堆快照时,我似乎无法弄清楚查看分离的 DOM 树时颜色的含义。红色和黄色有什么区别? 最佳答案 有很好的解释available here . 从文章: Re
分析器中 SQL Server 跟踪的输出包含 CPU 和持续时间列(以及其他列)。这些值的单位是什么? 最佳答案 CPU 以毫秒为单位。在 sql server 2005 及更高版本中,保存到文件或
我有一个奇怪的问题,我正在使用 MiniProfiler,它很棒,在我的本地机器上没有任何问题,但它在我们的测试服务器上的表现似乎有所不同。它似乎会生成许多对 mini-profiler-resour
我想知道优先级 的application-{profile}.properties文件,如果有多个 spring.profiles.active添加。 例如: 比方说,我有这个 spring.prof
我有一个名为“isActive”的助手和一个名为“create”的模板.. 见下文 Template.create.isActive = function () { return Meteor.u
这是我面临的场景:我正在使用 MiniProfiler 来分析一些操作。但它缺少我必须使用的特定功能。有一个设置文件 MiniProfiler 可以让我做一些配置,比如分析什么考虑什么,什么不考虑,什
哇,这完全令人困惑,而且 dojo 1.8 文档似乎是围绕构建层的完整 clusterf**k。有人知道那里发生了什么吗? 在构建脚本示例配置文件中,示例 amd.profile.js 有 profi
我正在为一个内部项目使用出色的 MVC Mini Profiler,但希望它能够显示时间信息,无论您是谁。理想情况下,如果用户是站点的管理员或开发人员,我希望能够显示完整的分析信息,如果用户只是标准用
打开Android Profiler编译出现如下错误: FAILURE:构建失败并出现异常。 什么地方出了错: Execution failed for task ':app:transformCla
我是一名优秀的程序员,十分优秀!