Изменение цвета текста matplotlib на белый (#FFFFFF) мешает выводу изображения

#python-3.x #matplotlib

#python-3.x #matplotlib

Вопрос:

У меня есть некоторый код, который выводит обрезанное изображение текстового объекта matplotlib, но если я изменю цвет текста на белый, изображение не будет обрезано правильно.

         t = plt.text(0.001, 0.025, r"$%s$" % text, fontsize = size)
        t.set_color("#FFFFFF")

        plt.axis('off')
        plt.tight_layout()

        with io.BytesIO() as png_buf:
            plt.savefig(png_buf, pad_inches=0, transparent=True, bbox_inches='tight')
            png_buf.seek(0)
            image = Image.open(png_buf)
            image.load()
            inverted_image = ImageOps.invert(image.convert("RGB"))
            cropped = image.crop(inverted_image.getbbox())
            cropped.save('out.png')
  

Это работает с t.set_color("#FFFFFE") , но не с t.set_color("#FFFFFF") or t.set_color("white") .

Что происходит?

Комментарии:

1. Что вы имеете в виду под «неправильной обрезкой изображения»? Если вы сделаете текст белым на белом фоне, какой бы ни был ImageOps, он не будет знать, что там есть какой-либо текст. Он просто видит белые пиксели

2. Я вижу, но фон на самом деле не белый, он прозрачный, я думаю, я мог бы рассказать разработчикам об этом поведении, чтобы они могли что-то сделать для этого конкретного случая.