После перехода с Python2.7 на Python3.7 методы преобразования, которые я нашел в Интернете, больше не работают.
Я попробовал несколько предложений. Каждый раз, когда библиотека изображений PIL выдает ошибку:
... site-pacakges \ PIL \ Image.py ", строка 812, в frombytes s = d.decode (data)
TypeError: аргумент 1 должен быть байтовым объектом только для чтения, а не bytearray
def WxImageToPilImage1( myWxImage ):
"""Convert wx.Image to PIL Image."""
width, height = myWxImage.GetSize()
data = myWxImage.GetData()
red_image = Image.new("L", (width, height))
red_image.frombytes(data[0::3])
green_image = Image.new("L", (width, height))
green_image.frombytes(data[1::3])
blue_image = Image.new("L", (width, height))
blue_image.frombytes(data[2::3])
if myWxImage.HasAlpha():
alpha_image = Image.new("L", (width, height))
alpha_image.frombytes(myWxImage.GetAlphaData())
myPilImage = Image.merge('RGBA', (red_image, green_image, blue_image, alpha_image))
else:
myPilImage = Image.merge('RGB', (red_image, green_image, blue_image))
return myPilImage
def WxImageToPilImage2( myWxImage ):
myPilImage = Image.new( 'RGB', (myWxImage.GetWidth(), myWxImage.GetHeight()) )
myPilImage.frombytes( myWxImage.GetData() )
return myPilImage