Я использовал CPython + PIL + бутылку для показа файлов изображений на моем веб-сайте. Я использовал приведенный ниже код для прямой передачи данных изображения из памяти PIL.
# 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
Теперь мне нужно использовать IronPython вместо CPython для обслуживания файлов изображений. И я пытаюсь обслуживать образ элемента управления диаграммой Microsoft (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
Но это не работает. Файл обслуживаемого изображения в веб-браузере не работает. Не могли бы вы, ребята, помочь мне, как заставить работать этот код Ironpython?