0
DAJAX를 통해 POST를 통해 URL이 표시됩니다.메모리 내 이미지를 base64 문자열로 변환 할 때 TypeError가 발생합니까?
URL은 다음 함수로 전달됩니다. TypeError가 throw됩니다.
'img'를 디스크에 저장하고 다시 열어서 변환하지 않으려합니다.
나는 그 밖의 무엇을 시도 해야할지 잘 모르겠다. 그래서 나는 세상으로 생각했다. 사전에 도움을 주셔서 감사합니다.
def getqrcode(link):
bsettings = Bitcoinsettings.objects.get(pk=1)
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=bsettings.qrcodesize , border=5,)
qr.add_data(link)
qr.make(fit=True)
img = qr.make_image()
output = StringIO.StringIO()
img.save(output, 'GIF')
contents = output.getvalue()
data = base64.b64encode(open(contents,'rb').read())
data = "data:image/png;base64," + data
output.close()
img = []
return data
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
다음은 ajax.py 코드입니다.
from torgap.bitcoin.bitcoin import getqrcode
from dajaxice.decorators import dajaxice_register
from dajax.core import Dajax
@dajaxice_register
def getimage(request, image):
try:
dajax = Dajax()
link = image
image = getqrcode(link)
dajax.assign('#qrcode', 'src', image)
return dajax.json()
except Exception as e:
print e