我遇到了 matplotlib 的问题。使用此信息,我可以设置人物脸部的颜色和 alpha 值。然而,matplotlib 似乎坚持在渲染输出之前将其与白色隐式混合。
例如,使用以下内容:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.set_facecolor('black')
fig.patch.set_alpha(0.3)
ax = fig.add_subplot(111, axis_bgcolor='black')
ax.plot([1, 2, 3], [1, 2, 3], color='white')
fig.savefig('test_fig.png', facecolor=fig.get_facecolor(), edgecolor='none')
test_fig.png
中的图形背景像素的 RGBA 值为 (178, 178, 178, 77)
,而不是预期的 (0,0,0,77)
。我尝试过多种颜色——在所有情况下,最终输出似乎相当于将指定的颜色+alpha 与不透明的白色进行 alpha 混合,然后将 alpha 值重置为指定的原始值。
为什么会出现这种情况?
是否有一些我缺少的颜色层仍然设置为白色,或者这是 matplotlib 的错误?
对我来说看起来像是一个错误。我已经提交了一个拉取请求来修复它;它在 v1.3+ 版本中已修复 https://github.com/matplotlib/matplotlib/pull/1868