如何在Squib文本中正确嵌入半透明图像

时间:2019-06-05 18:34:16

标签: ruby squib

我正在尝试通过Squib文本方法使用半透明的嵌入式(嵌入式)png图像。与使用“ png”方法自行放置图像时相比,图像的半透明部分最终呈现出更暗的效果。

我尝试了不同的混合模式,但是没有一个能达到预期的效果。

require 'squib'

Squib::Deck.new cards: 1 do
  background color: 'white'

  # This image renders as expected
  png file: 'semi-transparent.png', x: 100, y: 100

  # The semi-transparent portions of this image render much darker than expected
  text(str: ':circle:', x: 200, y: 100) do |embed|
    embed.png key: ':circle:', file: 'semi-transparent.png'
  end

  save_png
end

这是输出示例:https://imgur.com/3wrXiBz

任何有关如何使嵌入式图像与独立图像匹配的技巧都很好。


我在这里打开了一个针对此问题的错误:https://github.com/andymeneely/squib/issues/278

我目前正在使用以下函数将嵌入的令牌重新映射到单字符字符串,以解决此问题:

def remapTokens(x)
 mapping = {':circle:' => '@', ':square:' => '#', ':triangle:' => '^'}
 mapping.each { |k,v| x.gsub!(k,v) }
 return x
end

1 个答案:

答案 0 :(得分:0)

这听起来像是个错误-您可以将其提交到我们的问题跟踪器吗? https://github.com/andymeneely/squib/issues

如果您还可以将PNG上载到导致该问题的问题上,那么该问题也会很严重。

本地支持半透明图像,因此它们以相同的方式呈现。 Squib的处理方式没有任何不同。 embed.png和png方法调用同一件事,所以我不确定这里发生了什么。我很乐意调查。

完全公开:我是Squib开发人员。