matplotlib で問題が発生しました。この情報を使用して、人物の顔の色とアルファ値の両方を設定できます。ただし、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)
。さまざまな色を試してみました - 最終的な出力は、すべての場合において、指定された色 + アルファが不透明な白とアルファブレンドされ、続いてアルファ値が指定された元の値にリセットされるのと同等のようです。
なぜこうなった?まだ白に設定されている行方不明の色のレイヤーがありますか、それともmatplotlibのバグですか?
編集: これは、実際には matplotlib のバグであり、修正が行われており、バージョン 1.3 以降に存在するはずです。