PHPを実行しているサーバーに保存したいスクリーンキャプチャからのPythonImageオブジェクトがあります。
ユーザーのコンピューターに画像をまったく保存せずにこれらすべてを実行したいので、PILImageインスタンスから取得できるエンコードをPHPスクリプトに送信します。
これまで、画像をバッファ(python)に保存し、データをPHP関数file_put_contentsに送信しようとしましたが、結果のファイルは正しい.png画像ではありません(PNGエンコーディング文字列を拡張子が.pngのファイル...)
これが私のコードです...
クライアント
# shot is an Image instance
buff = StringIO()
shot.save(buff, 'PNG')
args = {'filename':'eg.png','image': buff.getValue()}
data = urllib.urlencode(args)
request = urllib2.Request(self.uploadURL, data)
urllib2.urlopen(request).read()
サーバ
# 'filename' arg ends in .png, 'image' arg is the upload parameter ^
$filename = 'images/'.$_POST['filename'];
file_put_contents($filename, $_POST['image']);
画像データをファイルに書き込もうとする前に、PHPで画像データを変換する必要があると思いますが、方法がわかりません。
以前、イメージをファイルに保存し、base 64でバイナリコンテンツを送信することでこれを実行しましたが、クライアントのコンピューターにイメージを保存したくありません。
ありがとう!
免責事項:この質問とエンコーディングに関する私の認識は、私には完全に「不快」に感じます。そのため、このような巨大な初心者/恐ろしい誤解であることに申し訳ありません。