gpt4 book ai didi

ios - 在 Ruby 中将浮点 RGB 颜色分量转换为整数

转载 作者:行者123 更新时间:2023-11-29 00:25:10 25 4
gpt4 key购买 nike

我需要将 Cucumber 提供的浮点 RGB 值从 iOS 应用程序转换为整数,以便我可以将它们作为十六进制颜色与预期的十六进制颜色进行比较。

问题是 Ruby to_s(16) 仅适用于 Fixnum,不适用于 float 。

Cucumber 从 iOS 应用程序中获取此内容:

{
"red" => 0.7490196078431373,
"alpha" => 1,
"type" => "UIDeviceRGBColor",
"blue" => 0,
"green" => 0
}

所以我需要将三个浮点 RGB 值转换为十六进制字符串。但我不能只说 r.to_s(16)。如何将这些值正确转换为整数,以便能够在 Ruby 中将它们用于字符串基转换?

最佳答案

您的源值在 0..1 范围内,而您的目标值在 0..255 范围内(或 0..0xFF 十六进制)。

首先,让我们获取值:

data = {
"red" => 0.7490196078431373,
"alpha" => 1,
"type" => "UIDeviceRGBColor",
"blue" => 0,
"green" => 0
}

values = data.values_at('red', 'green', 'blue')
#=> [0.7490196078431373, 0, 0]

现在我们可以将它们乘以 255:

values.map! { |v| (v * 255).round }
#=> [191, 0, 0]

最后将它们格式化为十六进制值:

'%02x%02x%02x' % values
#=> "bf0000"

关于ios - 在 Ruby 中将浮点 RGB 颜色分量转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com