Matplotlib savefig到BytesIO有点错误?

Matplotlib savefig到BytesIO有点错误?,matplotlib,c#,python,Matplotlib,C#,Python,我正试图将数字保存到内存流中,与另一个示例完全相同,因此: import matplotlib.pyplot as plt import io plt.figure() plt.plot([1, 2]) plt.title("test") buf = io.BytesIO() plt.savefig(buf, format = 'png') plt.savefig("real.png", format = 'png') buf.seek(0) data = buf.read() buf.cl

我正试图将数字保存到内存流中,与另一个示例完全相同,因此:

import matplotlib.pyplot as plt
import io


plt.figure()
plt.plot([1, 2])
plt.title("test")
buf = io.BytesIO()
plt.savefig(buf, format = 'png')
plt.savefig("real.png", format = 'png')
buf.seek(0)
data = buf.read()
buf.close()
f = open('copy.png', 'w')
f.write(data)
f.close()
我发现copy.png的大小稍大一些,应用程序拒绝打开它。这是某种编码问题吗

背景


我正在尝试使用python.net使用matplotlib渲染图形,并将它们传递给C#进行绘制。我希望避免将图像写入磁盘。理想情况下,我希望写入某种可以在C#中使用的字节数组

尝试以二进制模式打开文件

f=open('copy.png','wb')

从文件中:

Windows上的Python区分了文本文件和二进制文件; 文本文件中的行尾字符将自动更改 在读取或写入数据时,会稍微改变。这是在幕后进行的 对于ASCII文本文件,修改文件数据是可以的,但它会 损坏的二进制数据,如JPEG或EXE文件中的数据。小心 读取和写入此类文件时使用二进制模式


为我工作(1.2.0)。你们有什么版本的mpl?谢谢检查。我正在运行1.1.0,这是我为windows找到的最新预构建版本。我会看看我是否能得到1.2.0并用它进行测试。