Pillow処理画像モジュール

2265 ワード

目次
  • Pillow処理画像モジュール
  • メモリ読み書きデータBytesIO,StringIO
  • Pillow処理画像モジュール


    PILはPython 3をサポートしていないため、更新が遅い.ボランティアがPIlに基づいてPillowというブランチバージョンを作成しました.Pillowは現在Python 3に最新サポートされています.6,PillowとPILは1つの環境で共有できないので、PILがインストールされている場合は、まずPILをアンインストールする必要があります
      :pip install Pillow
      :pip uninstall PIL

    インポート方式:PILを継承するブランチであるためPillowのインポートはこうである.
    import PIL
    #   
    from PIL import Image

    Pillowで最も重要なクラス:
    from PIL import Image, ImageDraw,ImageFont
    Image       #     
    ImageDraw   #       
    ImageFont   #           

    使用方法:
        :
        img_obj = Image.new('RGB',(350,35),'red')       
       
                :
        img_draw = ImageDraw.Draw(img_obj)
        
              :
        img_font = ImageFont.truetype(r'static\font\333.ttf',35)
        
                      ,         :    
        1.    (  ,   )
        2.       

    ランダム検証コード画像:
    import random
    def get_random():
        return random.randint(0,255),random.randint(0,255),random.randint(0,255)  #       
    
    def get_code(request):
        img_obj = Image.new('RGB',(350,35),get_random())        # 1.      
        img_draw = ImageDraw.Draw(img_obj)                      #2.          
        img_font = ImageFont.truetype(r'static\font\333.ttf',35) #3.      ,  :      
        
        io_obj = BytesIO()  # 4.      
        
        
        code = ''
        for i in range(5):
            upper_str = chr(random.randint(65,90))
            lower_str = chr(random.randint(97,122))
            random_int = str(random.randint(0,9))
            #         
            temp_str = random.choice([upper_str,lower_str,random_int])
            #      
            img_draw.text((45+i*60,-2),temp_str,get_random(),font=img_font)
            #           
            code += temp_str
        print(code)
        img_obj.save(io_obj,'png')   #        
        #             session              
        request.session['code'] = code
        return HttpResponse(io_obj.getvalue())  

    メモリ読み書きデータBytesIO,StringIO

    from io import BytesIO,StringIO
    
    BytesIO                     ,           
    StringIO                   ,            
        
        
    getvalue()          str。