私は以前、CPython + PIL + bottleを使用して自分のWebサイトに画像ファイルを提供していました。以下のコードを使用して、PILメモリから画像データを直接提供しました。MemoryStream(IronPython Webサービス)からの画像ファイル
# works well in CPython
@route('/test')
def index():
response.set_content_type('image/png')
img = DrawSomePILImage()
output = StringIO.StringIO()
img.save(output,'PNG')
contents = output.getvalue()
output.close()
return contents
ここで、イメージファイルを提供するためにCPythonの代わりにIronPythonを使用する必要があります。そして私はMicrosoft Chart Control(System.Windows.Forms.DataVisualization.Charting)のイメージを提供しようとしています。
# image is broken in IronPython
@route('/test')
def index():
response.set_content_type('image/png')
cht = GetChartControl()
stream = MemoryStream()
cht.SaveImage(stream, ChartImageFormat.Png)
contents = System.Text.ASCIIEncoding.ASCII.GetString(stream.ToArray())
stream.Close()
return contents
しかし、これは機能しません。 Webブラウザ上の提供されたイメージファイルが壊れています。このironpythonコードの動作をどうやって手助けできますか?
回答ありがとうございますが、これはうまくいかないようです。私はこれを前に試してみましたが、それは内部(ウェブ)サーバーエラーになりました。私は、.net型(Byte [])をpython型(strまたは何か)に変換する必要があると思います。 –