いつもお世話になっております。
表題についてですが、
ローカル環境から送られてきた画像データ(dataURL)のものを元データにデコードしたいのですが、
よくわからない文字列にデコードされてしまいます。
ネットで記載されている情報などは色々と試してみたのですが、
うまくいかず数日間ハマりっぱなしです。。
簡単なことかもしれませんが、どなたか分かる方がいらっしゃればご教授いただけますと幸いです。
それではどうぞ宜しくお願い致します。
参考 : https://stackoverflow.com/questions/33870538/how-to-parse-data-uri-in-python
環境
Python 3.9.1
Django 3.1.6
元データ
File {name: "logo 2.png", lastModified: 1615045008460, lastModifiedDate: Sun Mar 07 2021 00:36:48 GMT+0900 (日本標準時), webkitRelativePath: "", size: 11454, …} lastModified: 1615045008460 lastModifiedDate: Sun Mar 07 2021 00:36:48 GMT+0900 (日本標準時) {} name: "logo 2.png" size: 11454 type: "image/png" webkitRelativePath: "" __proto__: File
画像データ(dataURL)
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANkAAADOCAYAAACzbadVAAABYmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgIHRpZmY6T3JpZW50YXRpb249IjEiLz4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4iLqjnAAAACXBIWXMAACE3AAAhNwEzWJ96AAAgAEl
デコード後データ
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\xd9\x00\x00\x00\xce\x08\x06\x00\x00\x00\xb3m\xa7U\x00\x00\x01biTXtXML:com.adobe.xmp\x00\x00\x00\x00\x00<?xpacket begin="\xef\xbb\xbf" id="W5M0MpCehiHzreSzNTczkc9d"?>\n<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP C
Django側ソースコード
class ImageCreateAPIView( CreateAPIView ): queryset = ImageUpload.objects.all() serializer_class = ImageUploadSerializer def post( self, request, *args, **kwargs ): file_data_uri = request.data['images'] with urlopen( file_data_uri ) as response: data = response.read() print(data)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。