0
URLから画像をダウンロードするコードを作成してから、その画像をbase64
にエンコードします。コードの関連部分である:リクエストで画像を取得してbase64でエンコードするが、ヘッダーが正しくない
dlimage = requests.request("GET", imageURL)
encodedImage = ("data:" + dlimage.headers['Content-Type'] + ";" + "base64," + base64.encodestring(dlimage.content))
結果の出力は次のとおり
data:text/html;base64,PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAzIEZvcmJpZGRlbjwvdGl0bGU+PC9oZWFkPg0KPGJvZHkgYmdjb2xvcj0id2hpdGUiPg0KPGNlbnRlcj48aDE+NDAzIEZvcmJpZGRlbjwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueDwvY2VudGVyPg0KPC9ib2R5Pg0KPC9odG1sPg0K
当該画像がJPEG
あります。では、なぜヘッダはtext/html
と言っていますか?私は別のツールを使ってイメージを変換しました。文字列はまったく異なります。
これの値は何ですか?そのヘッダーの値が "text/html"であるように見えます。その配列にアクセスしてヘッダーを取得するのではなく、常にイメージになるため、必要なものだけをハードコードする必要はありません。したがって、dlimage.headers ['Content-Type']の代わりに「image/jpeg」が必要です。 – victor
ダウンロードされたイメージがPNGまたはGIFになることがあるため、image/jpegをハードコードできません。 –
そのヘッダーに何か問題があります。サーバーが正しく設定していません。サーバー側のコードにアクセスできますか? – victor