ajaxを介して画像をbase64文字列としてdjangoに送信しています。私の django ビューでは、画像のサイズを変更してファイル システムに保存する必要があります。
これはbase64文字列です(簡略化):
data:image/jpeg;base64,/9j/4AAQSkZJRg-it-keeps-going-for-few-more-lines=
以下のpythonコードを使用してPILでこれを開こうとしました:
img = cStringIO.StringIO(request.POST['file'].decode('base64'))
image = Image.open(img)
return HttpResponse(image, content_type='image/jpeg')
アップロードされた画像を表示しようとしていますが、firefoxはそれを訴えます'The image cannot be displayed because it contains error'
私は自分の間違いを理解できませんでした。
解決:
pic = cStringIO.StringIO()
image_string = cStringIO.StringIO(base64.b64decode(request.POST['file']))
image = Image.open(image_string)
image.save(pic, image.format, quality = 100)
pic.seek(0)
return HttpResponse(pic, content_type='image/jpeg')