Pillow処理画像モジュール
2265 ワード
目次 Pillow処理画像モジュール メモリ読み書きデータBytesIO,StringIO
PILはPython 3をサポートしていないため、更新が遅い.ボランティアがPIlに基づいてPillowというブランチバージョンを作成しました.Pillowは現在Python 3に最新サポートされています.6,PillowとPILは1つの環境で共有できないので、PILがインストールされている場合は、まずPILをアンインストールする必要があります
インポート方式:PILを継承するブランチであるためPillowのインポートはこうである.
Pillowで最も重要なクラス:
使用方法:
ランダム検証コード画像:
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。