• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            misschuer

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            百事通

            最新評(píng)論

            python3的一些包說(shuō)明


            對(duì)于ubuntu 12.04LST 安裝PIL (https://github.com/sloonz/pil-py3k)
            需要: 
            說(shuō)明(http://pillow.readthedocs.org/en/latest/installation.html#linux-installation)
            libjpeg8
            libjpeg8-dev
            libfreetype6
            libfreetype6-dev 
            zlib1g-dev 
            libtiff4-dev
            liblcms1-dev
            libwebp-dev
            tcl8.5-dev
            tk8.5-dev

            一定要等所有所需模塊裝好 并且 看下這個(gè)(http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/)
            然后再裝PIL
            再貼下網(wǎng)上有好心人寫的 生成驗(yàn)證碼的例子

            #Fly web app - Verification Code
            # -*- coding: utf-8 -*-
            import random
            from io import BytesIO
            import Image, ImageDraw, ImageFont
            # 特別注意 from PIL import Image 和 import Image的區(qū)別 由于PIL包都是import xxx 所以我們不能寫成from xxx import yyy
            class VCode:
                def __init__(self,size=(100,30),length=4,font='',
                             font_color=(51,102,204),font_size=25,font_bg=(255,255,255),
                             line=(3,5),pointBorder = (50,47),save_type= 'JPEG',quality=100):
                    """
                    驗(yàn)證碼生成類
                    參數(shù):
                        size -  圖片高寬(width,height)
                        length - 驗(yàn)證碼長(zhǎng)度
                        font - 字體路徑
                        font_color - 字體顏色(允許是: #FF0000 或 RGB)
                        font_size - 字體大小
                        font_bg - 背景顏色
                        line - 干擾線 (最少,最大)
                        pointBorder - 散點(diǎn)(越大越多,越大越少)
                        save_type - 保存類型
                        quality - 品質(zhì)
                    """
                    self._size = size
                    self._font = font
                    self._font_color = self._str_hex(font_color)
                    self._font_size = font_size
                    self._length = length
                    self._font_bg = self._str_hex(font_bg)
                    self._save_type = save_type
                    self._quality = quality
                    #初始化
                    self._im = None
                    self._draw = None
                    self._code = ''
                    self._char = 'abcdefghkmnprstuvwyzABCDEFGHKLMNPRSTUVWYZ23456789'
                    self._pointBorder = pointBorder
                    self._line = line
                def Generate(self):
                    """生成驗(yàn)證碼,并返回圖像內(nèi)容,和驗(yàn)證碼"""
                    #生成code
                    random_code = self._randomCode()
                    self._code =  '%s' % ''.join(random_code)
                    code_str = '%s' % ' '.join(random_code)
                    #圖像對(duì)象
                    self._im = Image.new('RGB',self._size,self._font_bg)
                    self._draw = ImageDraw.ImageDraw(self._im)
                    imFont = ImageFont.truetype(self._font,self._font_size)
                    w,h = imFont.getsize(self._code)
                    xy = ((self._size[0]-w)/2,(self._size[1]-h)/2)
                    self._draw.text(xy,code_str,fill=self._font_color,font=imFont)
                    #畫干擾點(diǎn)
                    self._createPoints()
                    #畫干擾線
                    self._createLines()
                    #file對(duì)象
                    fp = BytesIO()
                    #保存圖像
                    self._im.save(fp,self._save_type,quality=self._quality)
                    return fp.getvalue(),self._code
                def _str_hex(self,color):
                    """轉(zhuǎn)換顏色值為RGB"""
                    if type(color) is str:
                        color = color.replace('#','')
                        temp_color = (int(color[0:2],16),int(color[2:4],16),int(color[4:6],16))
                    else:
                        temp_color = color
                    return temp_color
                def _randomCode(self):
                    """生成隨機(jī)code """
                    return random.sample(self._char,self._length)
                def _createPoints(self):
                    """畫點(diǎn)"""
                    for x in range(self._size[0]):
                        for y in range(self._size[1]):
                            flag = random.randint(0, self._pointBorder[0])
                            if flag > self._pointBorder[1]:
                                self._draw.point((x, y), fill = self._randomRGB())
                            del flag
                def _createLines(self):
                    """畫干擾線"""
                    lineNum = random.randint(self._line[0], self._line[1])
                    for i in range(lineNum):
                        begin = (random.randint(0, self._size[0]),
                                 random.randint(0, self._size[1])
                        )
                        end = (random.randint(0, self._size[0]),
                               random.randint(0, self._size[1])
                        )
                        self._draw.line([begin, end], fill = self._randomRGB())
                def _randomRGB(self):
                    """隨機(jī)生成RGB"""
                    return (random.randint(0,255),random.randint(0,255),random.randint(0,255))
            if __name__ == "__main__":
            verification = VCode(font='font/ARLRDBD.TTF')
            im, code = verification.Generate()
            with open("test.jpeg", "wb") as f:
            f.write(im)
            print(code)


            用tornado  render html是 html里的python 代碼


            Tornado的模板支持控制語(yǔ)句和表達(dá)語(yǔ)句,控制語(yǔ)句是使用 {% 和 %} 包起來(lái)的,例如 {% if len(items) > 2 %} 。表達(dá)語(yǔ)句是使用 {{ 和 }} 包起來(lái)的,例如 {{ items[0] }} 。

            控制語(yǔ)句和對(duì)應(yīng)的Python語(yǔ)句的格式基本完全相同。我們支持 if 、 for 、 while 和 try ,這些語(yǔ)句邏輯結(jié)束的位置需要用 {% end %} 做標(biāo)記


            圖片內(nèi)容無(wú)需保存到.jpeg中, 具體參考下面
            http://en.wikipedia.org/wiki/Data_URI_scheme#HTML


            是用mako來(lái)在html嵌套python代碼
            http://blog.csdn.net/luanruisong/article/details/9414635

            posted on 2013-11-20 11:44 此最相思 閱讀(321) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久精品国产亚洲av麻豆图片| 93精91精品国产综合久久香蕉 | 精品久久人人爽天天玩人人妻| 九九久久99综合一区二区| 91亚洲国产成人久久精品| 精品久久久一二三区| 久久综合久久久| 色偷偷88欧美精品久久久| 久久精品国产亚洲AV无码娇色| 久久久久无码中| 国产美女久久精品香蕉69| 亚洲Av无码国产情品久久| 99久久久精品| 色婷婷综合久久久久中文| 四虎国产精品成人免费久久| 精品久久久久久综合日本| 蜜桃麻豆WWW久久囤产精品| 精品久久久久久国产三级| 久久无码人妻一区二区三区午夜| 欧美久久综合九色综合| 久久精品九九亚洲精品天堂| 亚洲精品蜜桃久久久久久| 日批日出水久久亚洲精品tv| 久久噜噜电影你懂的| 996久久国产精品线观看| 一本色道久久99一综合| 亚洲va久久久久| 久久久国产99久久国产一| 国产精品久久久久一区二区三区| 99久久无码一区人妻a黑| 一本久久知道综合久久| 久久精品国产免费观看三人同眠| 欧美亚洲日本久久精品| 久久强奷乱码老熟女| 久久久久人妻一区精品| 青青草国产97免久久费观看| 久久综合九色综合久99| 久久婷婷色综合一区二区| 久久精品国产免费观看三人同眠| 久久精品国产亚洲AV忘忧草18| 久久天天躁狠狠躁夜夜2020一 |