باستخدام Pycairo لإنشاء الصور بشكل ديناميكي والخدمة في Django

StackOverflow https://stackoverflow.com/questions/3004854

سؤال

أرغب في إنشاء صورة PNG التي تم إنشاؤها ديناميكيًا مع Pycairo وأخدمها Django. انا اقرأ هذا: تقدم صورة تم إنشاؤها ديناميكيًا مع Django.

هل هناك طريقة لنقل البيانات من سطح Pycairo مباشرة في استجابة HTTP؟ أنا أفعل هذا الآن:

data = surface.to_rgba()
im = Image.frombuffer ("RGBA", (width, height), data, "raw", "RGBA", 0,1)
response = HttpResponse(mimetype="image/png")
im.save(response, "PNG")
return response

لكن هذا في الواقع لا يعمل لأنه لا توجد مكالمة TO_RGBA (هذه المكالمة التي وجدتها باستخدام رمز Google ولكن لا تعمل).

تحرير: يمكن استبدال TO_RGBA بالاتصال الصحيح get_data () ، لكنني ما زلت أريد أن أعرف ما إذا كان بإمكاني تجاوز PIL تمامًا.

هل كانت مفيدة؟

المحلول

def someView(request):
  surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 100, 100)
  context = cairo.Context(surface)
  # Draw something ...

  response = HttpResponse(mimetype="image/png")
  surface.write_to_png(response)
  return response

نصائح أخرى

يمكنك تجربة هذا:http://www.stuartaxon.com/2010/02/03/using-cairo-to-generate-svg-in-djangoإنه يتعلق بـ SVG ولكني أعتقد أنه سيكون من السهل التكيف

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top