GameIcons.get().recolor() 总是产生纯黑色方块

GameIcons.get().recolor() always results in a solid black square

我正在关注以下描述 game_icons gem 包的教程页面。 (堆栈溢出不会让我 post link 连同两个屏幕截图)我对重新着色选项感兴趣,可以更改 game_icons [=32= 中可用的图像之一] 包裹。使用 GameIcons.get().string 工作正常,但每当我尝试使用 GameIcons.get().recolor().string 时,我都会得到一个实心的黑色方块。这是一个测试用例:

require 'squib'
require 'game_icons'

Squib::Deck.new cards: 1 do
  background color: 'pink'
  rect
  # plain GameIcon looks fine
  #svg data: GameIcons.get('glass-heart').string
  # displays a solid black square
  svg data: GameIcons.get('glass-heart').recolor(fg: '333', bg:'ccc').string
  save_png prefix: 'recolor', dir: '.'
end

这是没有 recolor()

的样子

GameIcon without recolor

这是 recolor()

的样子

GameIcon with recolor

有没有人知道可能导致此问题的原因?

你需要在颜色前面加上#

这应该有效:

require 'squib'
require 'game_icons'

Squib::Deck.new cards: 1 do
  background color: 'pink'
  rect
  # plain GameIcon looks fine
  #svg data: GameIcons.get('glass-heart').string
  # displays a solid black square
  svg data: GameIcons.get('glass-heart').recolor(fg: '#333', bg:'#ccc').string
  save_png prefix: 'recolor', dir: '.'
end

公平地说,Squib 会为您完成此操作,因此您不必记住那部分 - 我会确保 GameIcons gem 也这样做。