Здравствуйте,
Я делаю приложение на python3 для своего последнего проекта в старшей школе, и у меня возникли некоторые проблемы.Если я хочу показать какие-либо изображения в своем приложении, я должен поместить их в указанный каталог, и я хотел бы просто получить строки base64 для каждого изображения, поместить их в мой код и просто загрузить изображения из этих строк.,Это может сделать мое приложение переносимым без каких-либо дополнительных файлов для копирования.
Я создал несколько функций для этого, но никто не работает
import base64
from PIL import Image
from io import BytesIO
b64imgData = "iVBORw0KGgoAAAANSUhEUgAAA3QAAABMCAYAAAAlUfXmAAAABGdBTUEAALGPC/..."
decodedImgData = base64.b64decode(imgData)
bio = BytesIO(decodedImgData)
img = Image.open(bio)
, и это использовалось для просмотра изображения:
wx.StaticBitmap(panel, -1, img, (50, yHalf/14+20), (xHalf - 100, yHalf/8))
Когда я запускаю код, я получаю это:
Traceback (most recent call last):
File "C:\Users\dummy\Desktop\PWG\main.py", line 68, in OnInit
frame = Menu()
File "C:\Users\dummy\Desktop\PWG\main.py", line 127, in __init__
wx.StaticBitmap(panel, -1, img, (50, yHalf/14+20), (xHalf - 100, yHalf/8))
TypeError: StaticBitmap(): arguments did not match any overloaded call:
overload 1: too many arguments
overload 2: argument 3 has unexpected type 'PngImageFile'
OnInit returned false, exiting...
Моя следующая попытка:
#I used this function from another thread which looks that may work
def PIL2wx (image):
width, height = image.size
return wx.BitmapFromBuffer(width, height, image.tobytes())
import base64
from PIL import Image
from io import BytesIO
b64imgData = "iVBORw0KGgoAAAANSUhEUgAAA3QAAABMCAYAAAAlUfXmAAAABGdBTUEAALGPC/..."
decodedImgData = base64.b64decode(imgData)
bio = BytesIO(decodedImgData)
img = Image.open(bio)
finalImage = PIL2wx(img)
wx.StaticBitmap(panel, -1, finalImage, (50, yHalf/14+20), (xHalf - 100, yHalf/8))
, но если я вызываю функцию, она показываетизображение очень размытое и только черное + белое
Я очень благодарен за каждый ответ