Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          Here’s a simple django view which creates a PIL image on the fly, and returns it as a PNG image:

          from django.utils.httpwrappers import HttpResponse
          from PIL import Image

          import random
          INK = "red", "blue", "green", "yellow"

          def image(request):

          # ... create/load image here ...
          image = Image.new("RGB", (800, 600), random.choice(INK))

          # serialize to HTTP response
          response = HttpResponse(mimetype="image/png")
          image.save(response, "PNG")
          return response
           

          To draw things on the fly, you can use either PIL’s ImageDraw module, or the aggdraw module:

          from django.utils.httpwrappers import HttpResponse
          from PIL import Image
          from aggdraw import Draw, Pen, Brush, Font

          import random

          def graphics(request):

          image = Image.new("RGB", (800, 600), "white")
          draw = Draw(image)

          # ... draw graphics here ...
          for i in range(20):
          x0 = random.randint(0, image.size[0])
          y0 = random.randint(0, image.size[1])
          x1 = random.randint(0, image.size[0])
          y1 = random.randint(0, image.size[1])
          draw.rectangle((x0, y0, x1, y1), Pen(random.choice(INK), 5))

          draw.flush()

          response = HttpResponse(mimetype="image/png")
          image.save(response, "PNG")
          return response
          posted on 2008-11-06 09:32 seal 閱讀(480) 評論(0)  編輯  收藏 所屬分類: Python
          主站蜘蛛池模板: 武夷山市| 宁武县| 手机| 鹿邑县| 淮阳县| 芮城县| 罗田县| 都安| 阜新市| 衡南县| 蒲城县| 泾源县| 焉耆| 永兴县| 彭水| 凤冈县| 汉川市| 天水市| 五家渠市| 岐山县| 仲巴县| 平安县| 新田县| 集贤县| 镇雄县| 安义县| 息烽县| 清丰县| 积石山| 绥阳县| 黄大仙区| 云和县| 益阳市| 于田县| 江山市| 惠水县| 乌鲁木齐市| 桐柏县| 滕州市| 栖霞市| 辽宁省|