Windows 使用PowerShell获取图像的调色板

Windows 使用PowerShell获取图像的调色板,windows,powershell,colors,color-palette,Windows,Powershell,Colors,Color Palette,我正在尝试获取图像的调色板。我尝试了各种方法,现在我在PowerShell中使用了以下代码,但无法得到正确的结果: 结果花费了我上千个RGB代码: 我假设“调色板”是指图像中出现的不同颜色 一种只选择集合的一个不同子集的简单(而且非常快速)方法是使用哈希表 $filename = 'C:\Users\schoo\Desktop\bb.jpg' $BitMap = [System.Drawing.Bitmap]::FromFile((Resolve-Path $filename).Provid

我正在尝试获取图像的
调色板。我尝试了各种方法,现在我在
PowerShell
中使用了以下代码,但无法得到正确的结果:

结果花费了我上千个
RGB
代码:

我假设“调色板”是指图像中出现的不同颜色

一种只选择集合的一个不同子集的简单(而且非常快速)方法是使用哈希表

$filename =  'C:\Users\schoo\Desktop\bb.jpg'
$BitMap = [System.Drawing.Bitmap]::FromFile((Resolve-Path $filename).ProviderPath)

# A hashtable to keep track of the colors we've encountered
$table = @{}
foreach($h in 1..$BitMap.Height){
  foreach($w in 1..$BitMap.Width) {
    # Assign a value to the current Color key
    $table[$BitMap.GetPixel($w - 1,$h - 1)] = $true
  }
}

# The hashtable keys is out palette
$palette = $table.Keys
我假设“调色板”是指出现在图像中的不同颜色

一种只选择集合的一个不同子集的简单(而且非常快速)方法是使用哈希表

$filename =  'C:\Users\schoo\Desktop\bb.jpg'
$BitMap = [System.Drawing.Bitmap]::FromFile((Resolve-Path $filename).ProviderPath)

# A hashtable to keep track of the colors we've encountered
$table = @{}
foreach($h in 1..$BitMap.Height){
  foreach($w in 1..$BitMap.Width) {
    # Assign a value to the current Color key
    $table[$BitMap.GetPixel($w - 1,$h - 1)] = $true
  }
}

# The hashtable keys is out palette
$palette = $table.Keys

你想得到的正确结果是什么?我想得到那张图像的调色板,这是一个非常小的颜色数据结果,结果可能是5-10RGB。请看这个结果:bit.ly/2xo7cub您想要得到的正确结果是什么?我想要得到该图像的调色板,这是非常小的颜色数据结果,结果中可能会有5-10 RGB。请看这个结果:bit.ly/2xo7cuB@mathias-r-jessen-我想得到图像的调色板,这是一个非常小的颜色数据结果,结果可能是5-10RGB。请查看此结果:bit.ly/2xo7cuB。您的代码总是给我出错。@mathias-r-jessen-我已经修复了,谢谢。只需将$ht更改为$table即可。但这不是我的问题,请看我之前的评论。呃,如果你想要TinEye专有API给你的结果,那么你必须使用他们的API
$Table.Keys |%{'0x{0}'-f${u.Name}
$Table.Keys |%{'0x{0}'-f${u.Name.Substring(2)}
@mathias-r-jessen-我想得到那张图像的调色板,其中非常小的数据结果的颜色,它可能会5-10 RGB的结果。请查看此结果:bit.ly/2xo7cuB。您的代码总是给我出错。@mathias-r-jessen-我已经修复了,谢谢。只需将$ht更改为$table即可。但是这并不是我的问题的答案,请看我之前的评论。呃,如果你想要TinEye专有API给你的结果,那么你必须使用他们的API
$Table.Keys |%{'0x{0}'-f${u.Name}
$Table.Keys |%{'0x{0}'-f${u.Name.Substring(2)