问题标签 [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.
java - JAVA CIEXYZ 色彩空间转换
您好,我正在尝试HSL Colorspace
用 Java 编写自己的代码,但在转换时遇到了问题CIEXYZ
...
我已经写了一个from/toRGB
方法,但是java也需要写一个from/toCIEXYZ
方法。我以为我可以使用预先实现CIEXYZ Colorspace
的...
但这不起作用,一段时间后我发现CIEXYZ
java提供的色彩空间不像我预期的那样工作......
这个小代码的结果是 [0.9820706, 0.49709317, 0.122087434] 而不是 [1 , 0.5, 0]...
谁能解释我为什么?我该如何解决这个问题?
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
将包含一个非 NULLCGColorSpaceRef
,profData
将包含一个非 NULLCFDataRef
缓冲区。 - 在运行 iOS 9.2.1 的 iPad Mini(原始)上:
sRgb
将包含一个非 NULLCGColorSpaceRef
,profData
将包含一个非 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 更改的内容。有谁知道有没有这样的文件?
swift - Swift:使用 ICC 配置文件将 RGB (UIColor) 转换为 CMYK
我已经成功地使用 Xcode 7.2 中的 Swift 2 代码将 UIColor 转换为 CMYK 值。但是,返回值类似于基于公式的转换:
相反,我想使用 ICC 配置文件。在注释掉的区域中,我尝试将 ColorSpace 从 CGCreateDeviceCMYK() 更改为 CGCreateWithICCProfile() ,它正在寻找 NSData 输入。我从 Adobe 下载了标准 CMYK ICC 配置文件并将“CoatedGRACoL2006.icc”拖到我的 Asset.xcassets 项目文件夹中。代码已编译,但在运行应用程序时生成了一长串错误。关于如何将颜色空间更改为基于 ICC 配置文件的颜色空间,我们将不胜感激任何输入、评论或建议。
objective-c - 如何在自定义视图控件中查看连续图像
我正在做一个实时视频应用程序。直到现在我解决了不断发送图像(帧)的问题,并且我可以在另一台笔记本电脑上接收这些图像。但是如何在自定义视图控件中查看图像的问题,让它看起来像一个视频?换句话说,我有很多 NSImage 对象,我想像视频一样查看它们。使用CGColorSpaceRef
?我是 Mac OS X 的可可编程新手。谁能给我一些代码?
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 色彩空间呢?
谢谢。
swift - 与 iPhone 5s 或 5se 相比,iPhone 5 上的 Swift 色彩空间不同
我单击图像以返回像素颜色。这很好用,但我发现它不适用于 iPhone 5。它适用于 iPhone 5s、5SE 和所有其他尺寸。我不懂为什么。以下代码在 iPhone 5 上将红色和蓝色显示为 nan。
core-image - 我应该为 CIImage 或 CIContext 设置颜色空间吗?
Core Image 让我们为 CIContext 指定颜色空间,如下所示:
或者对于 CIImage,如:
这三个有什么关系:
- kCIContextOutputColorSpace
- kCIContextWorkingColorSpace
- kCIImageColorSpace
分别设置它们的优缺点是什么?
swift - 如何使用 rgba16Float MTLPixelFormat 显示 MTKView
我有一个 MTKView 设置为使用 MTLPixelFormat.rgba16Float。我遇到了显示问题,下图可以很好地描述这些问题:
因此,预期的 UIColor 会被淘汰,但仅在它显示在 MTKView 中时。当我通过 CIIMage 将可绘制纹理转换回图像以在 UIView 中显示时,我恢复了原始颜色。这是我创建该输出的方式:
其他相关设置:
一些帖子暗示 sRGB 被假定在某处,但没有具体说明如何禁用它。
我希望我在 MTKView 上显示的颜色与输入相匹配(无论如何都尽可能接近它),并且仍然能够将该纹理转换为我可以在 ImageView 中显示的东西。我已经在 iPad Air 和新的 iPad Pro 上对此进行了测试。相同的行为。任何帮助,将不胜感激。