问题标签 [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 投票
1 回答
1333 浏览

ios - 如何在 iOS 上运行时修改索引 PNG 的调色板?

我有一系列 PNG 图像,它们使用颜色调色板中的索引(PNG 颜色类型 3)。在某些情况下,我需要制作一个图像副本,其中修改了调色板中的某些条目。通过这种方式,我们一遍又一遍地重新着色源 PNG。

在 Java 中,这是通过从 中获取 RGB 值IndexedColorModel、修改值并创建一个新的IndexedColorModel,并BufferedImage使用源图像的光栅数据和新的颜色模型创建一个新的来处理的。

在 Actionscript 中,我必须读取 PNG 字节作为裸ByteArray.,找到调色板块,修改值,然后让运行时从ByteArray.

我现在希望通过 MonoTouch(我是新手)为 iOS 实现相同的系统,但我碰壁了。我相信 Actionscript 方法也可以在这里工作,但这次最好避免在如此低的级别上工作,而且看起来我可以接近。

如果我从 a 开始UIImage,我可以使用UIImage.CGImage.ColorSpace. 我可以验证它是一个带有索引的颜色模型colorSpace.Model。我不确定的是如何获得调色板字节的实际数组。

然后另一方面,如何使用新调色板创建新图像?CGImage.WithColorSpace看起来它会做我想要的......也许?然后我必须能够用我的新调色板创建一个色彩空间:表面上CGColorSpace.CreateIndexed看起来像我想要的,但我不清楚baseSpace参数是如何使用的。我想CGColorSpace用我提供的全新调色板创建一个,然后将原始图像的索引与新调色板一起使用。也许我误解了确切CGColorSpace的用途。

0 投票
1 回答
2315 浏览

objective-c - 如何从ios 5中的源图像中检测面部的肤色?

我需要给脸部的皮肤上色...我如何找到肤色?

现在我通过RGB像素值获取皮肤颜色......我仍然面临问题,我正在匹配颜色坐标以匹配特定颜色范围的皮肤......但脸部的某些区域仍然不在我的颜色范围内那么它不是那个区域的颜色..

除了面部区域可能落在那个区域之外,那个区域也有颜色......

关于我的问题的任何想法...

提前致谢....

我的代码:

问候,

间谍网

我的输出图像...

另一个样本

0 投票
0 回答
1182 浏览

objective-c - Objective-C:带有索引颜色空间的 CGBitmapCreateContext

我知道文档说 CGBitMapContextCreate 不支持索引颜色空间。这对我来说很麻烦。我有一堆需要显示的 256 位 PNG 文件,它们都是索引颜色空间:

如何将 CGImageRef 转换为支持的色彩空间,以便我可以完成这项工作?

这是我的方法,但有问题:

0 投票
3 回答
3777 浏览

ios - 在色彩空间之间转换 CGColors 的正确方法

有几个问题询问有关在 Apple 平台上的颜色空间之间转换颜色的问题。不幸的是,答案通常涉及NSColorUIColor——不可在 OS X 和 iOS 上互换使用的不可移植的 Objective-C 类。

所以我想问一个非常具体的问题,我相信肯定有一个很好的答案。我简直不敢相信苹果不会预见到这种需求。

如何CGColor以一种通用的方式从一种颜色空间(例如单色)转换为另一种颜色空间(例如 RGB),支持所有CGColorSpace类型,同时仅使用可移植的 Core Graphics 功能?


一些上下文。我需要将在线服务提供的值与存储在UIColor. iOS5之前的提取RGB分量的正确方法,最后介绍了方法-[UIColor getRed:green:blue:alpha:],就是使用CGColorGetComponents(). 然后我将此颜色与从在线服务获取的颜色相乘。如果+[UIColor grayColor]用于生成UIColor. 意思是,我需要将颜色从灰度颜色空间转换为 RGB。在这种情况下,这很容易。提供其他一些色彩空间呢?或者如果在理论上的未来场景中我只想处理单个像素的颜色怎么办?

有一个建议是我将一个像素绘制到位图上下文中,然后读取这个像素。这太疯狂了,我希望这不是唯一的方法。显然绘图方法可以弄清楚如何进行转换;我们如何在不创建位图上下文仅在其中绘制像素的情况下利用它?


补充研究:

  • 这篇关于颜色转换的文章,除了UIColor's undocumented/private method之外-styleString,更有趣的还提到了 undocumented CGColorTransforms。
  • WebKit 的 ColorCG.cpp建议有一个名为CoreGraphics/CGColorTransform.h. 不幸的是,这个标题不存在,至少在 Mountain Lion 上不存在。苹果为什么要隐藏这些 API?
  • 我发现提到 s 的唯一其他合理资源CGColorTransform是 FreeQuartz,它是 Core Graphics 的免费/开源重新实现。

向 Apple 提交了雷达 #12141580,以打开和记录CGColorTransform. 不过,我并没有屏住呼吸,所以如果有其他明智的建议,我会全神贯注。

0 投票
1 回答
1468 浏览

objective-c - 更改 CIFilter 的工作色彩空间

我正在开发一个 MacAppStore 友好的 CIColorWheelGenerator 实现。它是一个简单的 CIFilter,它生成您可以在 Apple 的颜色选择器中看到的色轮。遗憾的是,这是 Apple 不允许我们在面向 MacAppStore 的应用程序中使用的私有内容的一部分。

我已经部分成功了,我得到了一个有效的实现,但它仍然停留在 genericRGB 颜色空间中。Apple 使用 sRGB 色彩空间工作。我找到了一种解决方法:

(_wheelImage 是使用我的色轮生成器过滤器生成的 CIImage)。

我已经检查了 QuartzComposer、CIColorWheelGenerator 接缝以使用 sRGB 颜色空间(基于我的颜色感知以及我自己的实现没有给出相同结果的事实)。问题来了:我是否误解了某些东西,我在 QC 中使用的 CIColorWheelGenerator 不仅仅是一个 CIFilter,而是带有更复杂的代码,或者是否可以在 CIFilter 中指定工作颜色空间(默认为 genericRGB)?

这是一张图片,因此您可以看到 Apple 的色轮(右侧)与我的不同(逻辑上,左侧):

微小的差异

我的应用程序(左)与 Apple 的颜色选择器(右)你可以看到一些相似之处:

细微差别2

0 投票
2 回答
596 浏览

ios - pdf 图片 色彩空间 麻烦 ios

编辑 我一直在使用的 pdf 文件显然是“indesign”格式(无论这意味着什么),因此没有颜色配置文件,有谁知道如果可能的话,我如何自己添加配置文件? 编辑结束

预先感谢任何人都可以解决这个问题。

首先让我告诉你,我在为 IOS 开发方面有点新手,我正在尝试在 xcode 上使用石英制作一个 pdf 阅读器,除了图像渲染之外,一切都很好,由于某种原因,色彩空间完全弄乱。请看一下这个例子。

这是我在 IOS 设备上获得的图像:

色彩空间错误的图像

这就是它的样子:

在此处输入图像描述

作为参考,绘制 pdf 页面的代码部分如下:

请如果有人可以帮助我解决这个问题。

大卫

0 投票
1 回答
256 浏览

macos - RGB 颜色在 MAC OS X 上渲染后显示为 BRG

当我们尝试渲染图像时,图像会显示在红色和蓝色值互换的位置,

如果我使用 kCGImageAlphaPremultipliedFirst 而不是 kCGImageAlphaPremultipliedLast 图像完全不同,现在我发现绿色和红色并有点互换。

请指教。

0 投票
1 回答
888 浏览

ios - 如何在不改变色彩空间的情况下获得 UIImage 负色

所以,我遵循了这个问题的建议:

如何赋予UIImage负色效果

但是当我进行转换时,色彩空间信息会丢失并恢复为 RGB。(我想要灰色的)。

如果我NSLogCGColorSpaceRef给定代码之前和之后,它会确认这一点。

有什么方法可以保留色彩空间信息,或者,如果没有,我以后如何将其更改回来?

编辑:在阅读它的文档UIGraphicsBeginImageContextWithOptions时说:

对于在 iOS 3.2 及更高版本中创建的位图,绘图环境使用预乘 ARGB 格式来存储位图数据。如果 opaque 参数为 YES,则位图将被视为完全不透明并忽略其 alpha 通道。

因此,如果不将其更改为CGContext? 我发现如果我将opaque参数设置为YES然后它会删除 alpha 通道,这是足够的(我使用的 tiff 阅读器无法处理 ARGB 图像)。不过,为了减小文件大小,我仍然希望只有一个灰度图像。

0 投票
0 回答
422 浏览

ios - CGColorSpaceCreateIndexed 创建带有 alpha 的灰度色彩空间

有人可以建议如何使用 alphaCGColorSpaceCreateIndexed方法创建灰度色彩空间吗?我只需要灰度值但启用了 alpha 通道,这就是为什么 CGColorSpaceCreateDeviceGray()不适合我的原因。提前致谢。

0 投票
1 回答
421 浏览

ios - 色彩空间匹配 iOS

我有一个紫色的设计,其十六进制值为#ae359f。

我将此十六进制转换为 UIColor,将其加载到模拟器上并截取屏幕截图。

我在 Photoshop 中打开设计和屏幕截图,并使用吸管,它们都具有相同的十六进制值 #ae359f,但是,它们明显不同的颜色。

一定是色彩空间问题——我已经读过几次了,但仍然没有真正理解。如果它在同一设备上,为什么 f #ae359f 不能在任何地方都相同!这是谁的错。

所以,问题是......我怎样才能让 UIColor 看起来像 Adob​​eRGB 值 - 我认为我可以在界面生成器中做到这一点......