こんにちは、このようなソケット xml 経由で送信したいです。
<root>
<image ID='2'>
<![CDATA[ binary data with image ]]>
</image>
</root>
画像はバイナリデータで、他の部分は文字列であるため、問題があります。複数の画像を送信していますが、ID が必要です。
主な問題は、バイナリ データと文字列データをどうするかです。イメージを str に変換しようとしましたが、これを元に戻すことはできません。
こんにちは、このようなソケット xml 経由で送信したいです。
<root>
<image ID='2'>
<![CDATA[ binary data with image ]]>
</image>
</root>
画像はバイナリデータで、他の部分は文字列であるため、問題があります。複数の画像を送信していますが、ID が必要です。
主な問題は、バイナリ データと文字列データをどうするかです。イメージを str に変換しようとしましたが、これを元に戻すことはできません。
バイナリを埋め込む便利な方法xmlは、base64 エンコードです。XAMLこれは、たとえば小さな画像を送信するために使用するアプローチです。コードのどこかで次のようにすることができます。
import base64
img = open('some.png',rb').read()
base64.b64encode(img)
# append it to your buffer
そして反対側では:
#get the img portion in the buffer
import base64
img = base64.b64decode(fetched_img)
# write it to disk or whatever
これは、内のバイナリ ファイルを処理する標準/通常のXML方法です。
使用base64は非常に簡単です。これはインタープリターの例です。
In [1]: import base64
In [4]: base64.b64encode('example')
Out[4]: 'ZXhhbXBsZQ=='
In [5]: base64.b64decode('ZXhhbXBsZQ==')
Out[5]: 'example'
ここでドキュメントを読むことができます。
お役に立てれば!
ソケットをバイナリとして接続するだけです-とにかくそうであり、おそらく改行変換については気にしません。