c # вернуть System.Byte [], я хочу открыть в Python - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь использовать сборку .NET в приложении Python с использованием Python.NET. Код C # захватывает изображение, которое я хочу использовать с Python. Допустим, у меня есть следующий C # func:

public byte[] GetLabelImage()
    {
        byte[] labelData = this.m_MdsFile.GetLabelData();
        if (labelData != null)
        {
            return labelData;
        }
        string path = Path.Combine(this.m_NameInfo.SlideDirName, "label.jpg");
        if (!File.Exists(path))
        {
            return null;
        }
        return File.ReadAllBytes(path);
    }

Когда я использую Python.Net в python, я делаю следующее:

import clr
import sys

from PIL import Image
import io
import matplotlib.pyplot as plt


b = clr.AddReference("Motic.DigitalSlide")


from Motic.DigitalSlide import *
obj = DigitalSlideFile("./123.mds")
a = obj.GetLabelImage()

print(a)

y=Image.open(io.BytesIO(a))
plt.figure("Image")
plt.imshow(y)
plt.axis('off')  
plt.show()
exit()

, но это дает мне вывод:

C:\Users\sk\Desktop\mds\bin\Motic\x86>python mds.py
System.Byte[]
Traceback (most recent call last):
  File "mds.py", line 18, in <module>
    y=Image.open(io.BytesIO(a))
TypeError: a bytes-like object is required, not 'Byte[]'

C:\Users\sk\Desktop\mds\bin\Motic\x86>
...