作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制一个从白色渐变为透明的阴影阴影的圆。我正在使用Core Graphics。
这是我从白色到黑色绘制渐变的内容:
let colorSpace = CGColorSpaceCreateDeviceRGB();
let colors = [UIColor.white.cgColor, UIColor.black.cgColor] as CFArray;
let locations : [CGFloat] = [0.0, 1.0];
let glowGradient : CGGradient = CGGradient.init(colorsSpace: colorSpace, colors: colors, locations: locations)!;
let ctx = UIGraphicsGetCurrentContext()!;
ctx.drawRadialGradient(glowGradient, startCenter: rectCenter, startRadius: 0, endCenter: rectCenter, endRadius: imageWidthPts/2, options: []);
UIColor.white.cgColor.copy(alpha: 0.0)
(即透明白色)。但是,此操作失败:
fatal error: unexpectedly found nil while unwrapping an Optional value
CGColorSpaceCreateDeviceRGB()
)。
CGColorSpaceCreateDeviceRGB
,
CGColorSpaceCreateDeviceCMYK
和
CGColorSpaceCreateDeviceGray
。
CGGradient.init
说:
components
中提供8个值-红色,绿色,蓝色和第一种颜色的alpha值,然后是第二种颜色的红色,绿色,蓝色和alpha值。
CGColorSpace
在哪里?
最佳答案
答案不太令人满意:您可以使用.colorSpace
获得上下文的色彩空间。就我而言,这似乎给了我RGBA空间,但是我看不到任何保证。
这是使用.colorSpace
的渐变:
let ctx = UIGraphicsGetCurrentContext()!;
let colorSpace = ctx.colorSpace!;
let colorComponents : [CGFloat] = [
// R G B A
1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 0.0,
];
let locations : [CGFloat] = [0.0, 1.0];
let glowGradient : CGGradient = CGGradient.init(
colorSpace: colorSpace,
colorComponents: colorComponents,
locations: locations,
count: locations.count
)!;
ctx.drawRadialGradient(glowGradient, startCenter: rectCenter, startRadius: 0, endCenter: rectCenter, endRadius: imageWidthPts/2, options: []);
colorSpace.numberOfComponents
的计算结果为3,即不是RGBA,但是它仍然可以正确解释渐变中的alpha分量。
¯\_(ツ)_/¯
关于ios - RGBA的CGColorSpace在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937142/
我正在用 Swift 编写一个函数来创建一个 vImage_CGImageFormat来自CGImage如下: vImage_CGImageFormat( bitsPerComponent:
我目前正在努力了解 iOS 上 CGColorSpace 颜色管理 API 的当前状态。在 iOS 8.1 SDK(据我所知)之前,CGColorSpace.h 中的许多函数和常量都被标记为 __IP
我在比较 UIColors 时遇到问题。我有一张图片,我已经成功地提取了用户点击的图片上的颜色。现在我想将该颜色与其他颜色进行比较,但我得到了一些奇怪的结果。这是我尝试过的: CGColorR
我是一名优秀的程序员,十分优秀!