#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. Я вижу, но фон на самом деле не белый, он прозрачный, я думаю, я мог бы рассказать разработчикам об этом поведении, чтобы они могли что-то сделать для этого конкретного случая.