使用什么数字表示方案来表示此 .ini 文件中的颜色?

使用什么数字表示方案来表示此 .ini 文件中的颜色?

我正在修改 .ini 设置文件以更改 Windows 应用程序的颜色。

现有的颜色全部用十进制整数表示,范围从-16777201至536870911。

显然,这些值不仅仅是 RGB 或 HSL。我几乎可以肯定它们是转换为十进制的十六进制 16 位 RGB 字,但负值让我有点困惑。此外,RGB 似乎可能被反转为 BGR。

可能使用什么数字方案来表示颜色?

该应用程序是闭源的,我不确定它是用哪种编程语言创建的。我想可能是 Delphi。

(顺便说一句,也欢迎提供任何基于网络的工具链接,用于将这些值转换为 RGB 或从 RGB 转换为 RGB !)

答案1

转换为十六进制电源外壳

此代码将定义一个名为解析颜色. 应该使侦探工作变得简单:

Function Parse-Color {
   param(
     [Parameter(Mandatory,
        ValueFromPipeline)]
     [Int32[]]
     $IniColor
   )
   Process { FOrEach ( $Color in $IniColor ) {
      $Hex   = '{0:X8}' -f $Color
      [PSCustomObject]@{
         Int32 = $_
         Hex   = '0x{0}' -f $Hex
         Byte0 = -join $Hex[6,7] # Change these labels
         Byte1 = -join $Hex[3,5] # to the channel
         Byte2 = -join $Hex[2,3] # namee as they're
         Byte3 = -join $Hex[0,1] # determined.
      }
   }
}}
If ( -not ( Get-Alias pc -ea silent )) {
   Set-Alias pc Parse-Color
} 

然后通过管道调用:

-16777201, 536870911 | Parse-Color | Format-Table

得出的结果是:

PS C:\> -16777201, 536870911 | Parse-Color | Format-Table

    Int32 Hex        Byte0 Byte1 Byte2 Byte3
    ----- ---        ----- ----- ----- -----
-16777201 0xFF00000F 0F    00    00    FF
536870911 0x1FFFFFFF FF    FF    FF    1F


PS C:\> 

最可能的嫌疑:带有 Alpha 通道的 RGB 颜色

不太可能:CMYK

编辑:将 Parse-Color 添加到配置文件。

选项1)Down & Difty:直接将代码添加到配置文件中:

  1. 将上述功能代码复制到剪贴板。
  2. 键入:Get-Clipboard | Add-Content $PROFILEgcb | ac $PROFILE
  3. 启动新的 PS 会话来验证该功能是否已添加。

选项 2)另存为 .ps1 文件并从配置文件中点源。

  1. 将代码复制到剪贴板

  2. 类型:$code = gcb

  3. 类型:`$path = 'c:\Some\path\filename.ps1'

  4. 类型:sc $path $code

  5. 类型:ac $Profile ". $Path"

相关内容