问题标签 [cgcolorspace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
86 浏览

java - JAVA CIEXYZ 色彩空间转换

您好,我正在尝试HSL Colorspace用 Java 编写自己的代码,但在转换时遇到了问题CIEXYZ...

我已经写了一个from/toRGB方法,但是java也需要写一个from/toCIEXYZ方法。我以为我可以使用预先实现CIEXYZ Colorspace的...

但这不起作用,一段时间后我发现CIEXYZjava提供的色彩空间不像我预期的那样工作......

这个小代码的结果是 [0.9820706, 0.49709317, 0.122087434] 而不是 [1 , 0.5, 0]...

谁能解释我为什么?我该如何解决这个问题?

0 投票
3 回答
1617 浏览

ios - 颜色作为滑块位置的函数,用于设置颜色

我正在尝试创建一个用户可以使用的颜色选择器工具。颜色选择器有一个所有颜色的滑块和一个额外的滑块来设置颜色的深浅。两者都显示在图 1 和图 2 中:

图片1:选择颜色:

图 1

图 2:设置颜色的深浅

在此处输入图像描述

我知道我可以为滑块使用自定义图像,而不是将每种颜色与一个位置匹配,这意味着我需要创建巨大的数组并且需要做很多工作。设置颜色深浅的​​第二个滑块仍需要在运行时计算。我怀疑这种方法有什么好处,因此问你是否对如何解决这个问题有更好的想法。也许一个将颜色与滑块位置联系起来的数学函数,color(x),其中 x 是滑块的位置,可以解决问题。那么如何根据位置创建颜色并基于此数学函数创建滑块?

0 投票
2 回答
828 浏览

ios - iOS 上的 CGColorSpace API 和颜色管理状态?

我目前正在尝试了解 iOS 上 CGColorSpace 颜色管理 API 的当前状态。在 iOS 8.1 SDK 之前(据我所知),其中的许多函数和常量CGColorSpace.h都被标记为__IPHONE_NA. 然而,根据iOS 8.1 API Diffs for Core Graphics,许多以前__IPHONE_NA更新为__IPHONE_2_0. 那么我们应该如何解释呢?

我不认为 Apple 会追溯性地将这些功能的支持添加到旧的 iOS 版本中,而是他们只是将这些功能的可见性从私有更改为公共。当尝试在不同的 iOS 版本和设备上使用其中一些功能时,就会出现问题。例如:

  • 在运行 iOS 8.2 的 iPad Mini(原始)上:sRgb&profData将为 NULL。
  • 在运行 iOS 8.3 的 iPad 3 上:sRgb&profData将为 NULL。
  • 在运行 iOS 9.2.1 的 iPhone 6 Plus 上:sRgb将包含一个非 NULL CGColorSpaceRefprofData将包含一个非 NULLCFDataRef缓冲区。
  • 在运行 iOS 9.2.1 的 iPad Mini(原始)上:sRgb将包含一个非 NULL CGColorSpaceRefprofData将包含一个非 NULLCFDataRef缓冲区。

所以至少对于 iOS 8 来说,这些功能似乎还没有完全实现。对于 iOS 9,事情似乎开始起作用了。

是否有任何文档或资源描述了这些 API 在 iOS 8 和 iOS 9 中的变化?CGColorSpaceCreateWithName( kCGColorSpaceSRGB )返回 NULL时应该使用什么颜色空间?在这种情况下,这似乎CGColorSpaceCreateDeviceRGB()是唯一的选择。

经过一些测试,我发现可以从 a 获取嵌入的颜色配置文件CGImageRef并使用该配置文件将颜色转换应用到另一个颜色空间,只要您自己进行颜色转换。Core Graphics API 仍然不支持在色彩空间之间转换图像,但如果您有自己的色彩管理功能,现在可以在 iOS 上自己完成——这在以前是不可能的。

我只是想知道什么是可行的,什么是不可行的。我尝试查看发行说明并寻找描述从 iOS 7 到 8 和 8 到 9 的变化的技术说明,但我找不到任何描述 CGColorSpace API 更改的内容。有谁知道有没有这样的文件?

0 投票
3 回答
1966 浏览

swift - Swift:使用 ICC 配置文件将 RGB (UIColor) 转换为 CMYK

我已经成功地使用 Xcode 7.2 中的 Swift 2 代码将 UIColor 转换为 CMYK 值。但是,返回值类似于基于公式的转换:

相反,我想使用 ICC 配置文件。在注释掉的区域中,我尝试将 ColorSpace 从 CGCreateDeviceCMYK() 更改为 CGCreateWithICCProfile() ,它正在寻找 NSData 输入。我从 Adob​​e 下载了标准 CMYK ICC 配置文件并将“CoatedGRACoL2006.icc”拖到我的 Asset.xcassets 项目文件夹中。代码已编译,但在运行应用程序时生成了一长串错误。关于如何将颜色空间更改为基于 ICC 配置文件的颜色空间,我们将不胜感激任何输入、评论或建议。

0 投票
1 回答
67 浏览

objective-c - 如何在自定义视图控件中查看连续图像

我正在做一个实时视频应用程序。直到现在我解决了不断发送图像(帧)的问题,并且我可以在另一台笔记本电脑上接收这些图像。但是如何在自定义视图控件中查看图像的问题,让它看起来像一个视频?换句话说,我有很多 NSImage 对象,我想像视频一样查看它们。使用CGColorSpaceRef?我是 Mac OS X 的可可编程新手。谁能给我一些代码?

0 投票
1 回答
593 浏览

ios - 在实验室色彩空间中创建像素缓冲区

我正在实现一个类似于 ios 中 Photoshop 魔棒工具的颜色选择工具。

我已经让它在 RGB 中工作,但为了使其更准确,我想让它在 LAB 色彩空间中工作。

它目前的工作方式是它需要一个 UIImage,创建该图像的 CGImage 版本。然后它在 RGB 颜色空间中创建 CGContext,在该上下文中绘制 CGImage,获取上下文数据,然后将其绑定到使用 struct RGBA32 的像素缓冲区。

然后,它使用该像素缓冲区使用非常简单的欧几里得距离快速将颜色值与所选像素进行比较,详见此处。

https://en.wikipedia.org/wiki/Color_difference

正如我所说,它可以工作,但为了获得更准确的结果,我希望它可以工作是 CIE Lab 颜色空间。

最初,我尝试在检查每个像素时将其转换为 LAB 颜色,然后使用上面色差链接中详述的 CIE94 比较。它工作但很慢,我猜是因为它必须在检查之前将一百万像素(左右)转换为 LAB 颜色。

然后让我感到震惊的是,为了让它快速工作,最好将像素缓冲区存储在 LAB 色彩空间中(它不用于其他任何东西)。

所以我创建了一个类似的结构 LABA32

我可能错了,但理论上如果我在使用 LAB 颜色空间而不是 Device RGB 的上下文中绘制 CGImage,它应该将数据映射到这个新结构。

我遇到的问题实际上是创建色彩空间(更不用说测试这个理论是否真的有效)。

要创建一个 LAB 色彩空间,我正在尝试使用这个构造函数

根据苹果文档

白点:在 CIE 1931 XYZ 空间中指定漫反射白点的三色值的 3 个数字的数组。黑点:在 CIE 1931 XYZ 空间中指定漫反射黑点的三色值的 3 个数字的数组。range:由 4 个数字组成的数组,指定颜色空间的 a* 和 b* 分量的有效值范围。a* 分量代表从绿色到红色的值,b* 分量代表从蓝色到黄色的值。

所以我创建了 3 个 CGFloats 数组

然后我尝试构建色彩空间

问题是我不断收到“不支持的色彩空间”错误,所以我必须做一些完全错误的事情。我花了很多时间寻找其他人尝试构建 LAB 颜色空间,但似乎没有任何相关内容,甚至试图找到 Objective-C 版本。

那么我该如何正确地创建一个 LAB 色彩空间呢?

谢谢。

0 投票
1 回答
60 浏览

swift - 与 iPhone 5s 或 5se 相比,iPhone 5 上的 Swift 色彩空间不同

我单击图像以返回像素颜色。这很好用,但我发现它不适用于 iPhone 5。它适用于 iPhone 5s、5SE 和所有其他尺寸。我不懂为什么。以下代码在 iPhone 5 上将红色和蓝色显示为 nan。

0 投票
0 回答
1452 浏览

core-image - 我应该为 CIImage 或 CIContext 设置颜色空间吗?

Core Image 让我们为 CIContext 指定颜色空间,如下所示:

或者对于 CIImage,如:

这三个有什么关系:

  • kCIContextOutputColorSpace
  • kCIContextWorkingColorSpace
  • kCIImageColorSpace

分别设置它们的优缺点是什么?

0 投票
1 回答
10408 浏览

ios - 如何将 UIExtendedSRGBColorSpace 与我的颜色值匹配

UIButton我使用 XCode 可视化编辑器设置颜色。我使用 RGB 滑块设置它。在此处输入图像描述

然后我设置变量green

当我打印出green值并UIButton.backgroundColor相应地得到下一个值时:

所以,正如我猜想的那样,色彩空间是相等的,但值却不是。为什么会这样?苹果的 UIButton() 做了一些隐藏的转换?什么目的?此按钮属性和属性是否可以具有相同的值green

0 投票
2 回答
881 浏览

swift - 如何使用 rgba16Float MTLPixelFormat 显示 MTKView

我有一个 MTKView 设置为使用 MTLPixelFormat.rgba16Float。我遇到了显示问题,下图可以很好地描述这些问题:

在此处输入图像描述

因此,预期的 UIColor 会被淘汰,但仅在它显示在 MTKView 中时。当我通过 CIIMage 将可绘制纹理转换回图像以在 UIView 中显示时,我恢复了原始颜色。这是我创建该输出的方式:

其他相关设置:

一些帖子暗示 sRGB 被假定在某处,但没有具体说明如何禁用它。

我希望我在 MTKView 上显示的颜色与输入相匹配(无论如何都尽可能接近它),并且仍然能够将该纹理转换为我可以在 ImageView 中显示的东西。我已经在 iPad Air 和新的 iPad Pro 上对此进行了测试。相同的行为。任何帮助,将不胜感激。