I am trying to convert base64 string into image, so far I have been following this: How to convert base64 string to image? here is pas of the code
image = stringToRGB(request.POST.get("image", None))
#request.POST.get("image", None) = /9j/4QL2RXhpZgAATU0AKgAAAAgACwEPAAIAAAAIAAAAkgEQAAIAAAAJAAAAmgESAAMAAAABAAgAAAEaAAUAAAABAAAApAEbAAUAAAABAAAArAEoAAMAAAABAAIAAAExAAIAAAA8AAAAtAEyAAIAAAAUAAAA8AITAAMAAAABAAEAAIdpAAQAAAABAAABBIglAAQAAAABAAAC6AAAAABzYW1zdW5nAFNNLU0xMTVGAAAAAABIAAAAAQAAAEgAAAABbTExcW5zeHgtdXNlciAxMCBRUDFBLjE5MDcxMS4wMjAgTTExNUZYWFUxQVRKMiByZWxlYXNlLWtleXMAMjAyMTowNDoyMCAwOTo1OTozMgAAHIKaAAUAAAABAAACWoKdAAUAAAABAAACYogiAAMAAAABAAAAAIgnAAMAAAABAi8AAJAAAAcAAAAEMDIyMJADAAIAAAAUAAACapAEAAIAAAAUAAACfpEBAAcAAAAEAQIDAJIBAAoAAAABAAACkpICAAUAAAABAAACmpIDAAoAAAABAAACopIHAAMAAAABAAIAAJIJAAMAAAABABgAAJIKAAUAAAABAAACqpKQAAIAAAAHAAACspKRAAIAAAAHAAACupKSAAIAAAAHAAACwqAAAAcAAAAEMDEwMKABAAMAAAABAAEAAKACAAQAAAABAAAFAKADAAQAAAABAAAC0KAFAAQAAAABAAACyaIXAAMAAAABAAAAAKMBAAcAAAABAQAAAKQCAAMAAAABAAAAAKQDAAMAAAABAAAAAKQFAAMAAAABAAAAAKQGAAMAAAABAAAAAAAAAAAAAAABAAAAGAAAAMgAAABkMjAyMTowNDoyMCAwOTo1OTozMgAyMDIxOjA0OjIwIDA5OjU5OjMyAAAAEegAAAPoAAAAyAAAAGT////MAAAAZAAACsgAAAPoMTYwMzA2ADAxNjAzMDYAMDE2MDMwNgAAAgABAAIAAAAEUjk4AAACAAcAAAAEMDEwMAAAAAAAAAAAAAAA/9sAhAA
def stringToRGB(base64_string):
imgdata = base64.b64decode(str(base64_string))
image = Image.open(io.BytesIO(imgdata))
return cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB)
the result is I get an error that say "Incorrect padding"
is there a way to solve this case ?
Second update
def stringToRGB(base64_string):
base64_string += "=" * ((4 - len(base64_string) % 4) % 4)
imgdata = base64.b64decode(str(base64_string))
image = Image.open(io.BytesIO(imgdata))
return cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB)
error for second update:
cannot identify image file <_io.BytesIO object at 0x11ba2c400>
update 3
def stringToRGB(base64_string):
# base64_string += "===" * ((4 - len(base64_string) % 4) % 4)
altchars = b'+/'
base64_string = re.sub(rb'[^a-zA-Z0-9%s]+' %
altchars, b'', base64_string) # normalize
missing_padding = len(base64_string) % 4
if missing_padding:
base64_string += b'=' * (4 - missing_padding)
imgdata = base64.b64decode(str(base64_string), altchars)
print(imgdata, ";;;;;;;;")
image = Image.open(io.BytesIO(imgdata))
print(image, "////")
return cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB)
from third update I get an error: cannot use a bytes pattern on a string-like object