Pillow模块图片生成
0825自我总结
Pillow模块图片生成
一.模块安装
pip3 install pillow
二.模块的载入
import PIL
三.django结合img标签生成图片
img.html
<img src='/img/'>
url.py
from django.conf.urls import url
from django.contrib import admin
#主路由导入视图内函数
from app import views
urlpatterns = [
    url(r'^img/', views.img),
    url(r'^show/', views.show),
]
view.py
方法一:返回固定图片
def show(request):
    return render(request,'img.html')
def img(request)
	with open('static/img/lhf.jpg','rb') as f:
   		data=f.read()
    return HttpResponse(data)
方法二:自动生成图片(借助第三方模块pillow)
from PIL import Image
def show(request):
    return render(request,'img.html')
def img(request)
    img=Image.new('RGB',(350,40),(123,222,222)) #颜色模式,长宽,rgb里面的颜色
    #把图片保存起来
    with open('static/img/code.png','wb') as f:
    #把图片保存起来(注意,用img对象的save方法,把f传入)
    	img.save(f)
    #打开返回
    with open('static/img/code.png','rb') as f:
        data=f.read()
    return HttpResponse(data)
方法三:保存在内存中(需要借助io模块)
from PIL import Image
from io import BytesIO
def show(request):
    return render(request,'img.html')
def img(request)
    img=Image.new('RGB',(350,40),(123,222,222)) #颜色模式,长宽,rgb里面的颜色
    #生成一个Byteio对象
   	f=BytesIO()
    # #把文件保存到对象中
    img.save(f,'png')
    #f.getvalue() 把文件从对象中取出来
    return HttpResponse(f.getvalue())
方法四,保存内存又保存文件中
from PIL import Image
from io import BytesIO
def show(request):
    return render(request,'img.html')
def img(request)
	img=Image.new('RGB',(350,40),(123,222,222)) #颜色模式,长宽,rgb里面的颜色
	#写文字
	#生成一个字体对象
	font=ImageFont.truetype('static/font/kumo.ttf',34) #字体文件路径,字体大小
	# 调用方法,返回一个画板对象
	draw=ImageDraw.Draw(img)
	draw.text((0,10),'python',font=font) #字体的XY坐标,字体内容,字体类型
    f=BytesIO()
    img.save(f,'png')
    return HttpResponse(f.getvalue())
四.画点画线
from PIL import Image
from io import BytesIO
def show(request):
    return render(request,'img.html')
def img(request)
        img = Image.new('RGB', (350, 40), (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        # 写文字
        # 生成一个字体对象
        font = ImageFont.truetype('/static/Gabriola.ttf', 34)
        # 调用方法,返回一个画板对象
        draw = ImageDraw.Draw(img)
        new_text =''
        # 生成随机8位数字
        for x_index in range(1, 8):
            num = chr(random.randint(48, 57))
            word = chr(random.randint(65, 90))
            word_1 = chr(random.randint(97, 122))
            text =random.choice((num, word, word_1))
            draw.text((x_index * 32, 0),text, font=font)
            new_text +=text
        # 加点线
        width = 320
        height = 35
        for i in range(5):
            x1 = random.randint(0, width)
            x2 = random.randint(0, width)
            y1 = random.randint(0, height)
            y2 = random.randint(0, height)
            # 在图片上画线
            draw.line((x1, y1, x2, y2), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        for i in range(33):
            # 画点
            draw.point([random.randint(0, width), random.randint(0, height)], fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
            x = random.randint(0, width)
            y = random.randint(0, height)
            # 画弧形
            draw.arc((x, y, x + 4, y + 4), 0, 90, fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        print(new_text)
        #存在session中
        request.session['code']=new_text
        #存内存
        f = BytesIO()
        img.save(f, 'png')
        return HttpResponse(f.getvalue())
												
											Pillow模块图片生成的更多相关文章
- pillow 模块
		
pillow模块 图片处理 中文文档 安装 pip install Pillow 对图片旋转90度显示 from PIL import Image im=Image.open("t.jpg& ...
 - Django 生成验证码或二维码 pillow模块
		
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
 - python模块之PIL模块(生成随机验证码图片)
		
PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...
 - 图像处理pillow模块
		
pillow模块: -->基本的图像处理模块 Pip install pillow from PIL import Image #1.读取图片 im = Image.open('/test.jp ...
 - pillow模块
		
pillow模块 用于操作图片的模块 安装 pip install pillow 生成验证码 from PIL import Image,ImageDraw,ImageFont from io imp ...
 - python 使用pillow将图片转换为webp格式
		
1.webp格式 webp格式是谷歌开发的一种旨在加快图片加载速度的格式,将图片转为webp格式后,体积约为原来的2/3,这可以节省大量的服务器带宽,微信公众号文章里的图片就是这种格式的. 2.使用p ...
 - thinkphp3.2与phpexcel带图片生成 完美案例
		
thinkphp3.2与phpexcel完美案例 // 导出exl public function look_down(){ $id = I('get.id'); $m = M ('offer_goo ...
 - phpcms v9图片生成缩略图变成黑色解决方法
		
今天客户反映,上传的图片生成缩略图有的图片变成黑色,出现问题就百度了一下,有不少网友也遇到这样的问题,但是官方论坛也没有给出解决办法,那还得靠自己解决了,于是就研究phpcms v9 图片压缩代码.打 ...
 - 验证码图片生成工具类——Captcha.java
		
验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载 Captcha.java) import java. ...
 
随机推荐
- 通过Service访问应用 (2)
			
目录 通过NodePort Service在外部访问集群应用 通过LoadBalancer Service在外部访问集群应用 Microsoft SQL Server数据库部署 为了便于理解和学习,请 ...
 - 树、图、堆、STL(来自菜鸡的"炒鸡"干粮)
			
树.图.堆.STL 图论基础 简单图: 没有自环,两个顶点之间最多只有一条边. 完全图: 一个简单图,每两个顶点之间都有一条边.一共有(n-1)*n/2条边. 二分图: 一个简单图,设G=(V,E)是 ...
 - HBase WAL原理学习
			
1.概述 客户端往RegionServer端提交数据的时候,会写WAL日志,只有当WAL日志写成功以后,客户端才会被告诉提交数据成功,如果写WAL失败会告知客户端提交失败,换句话说这其实是一个数据落地 ...
 - Git服务端下载
			
链接:http://pan.baidu.com/s/1kVshpQ3提取密码:4g36
 - 降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)
			
作者 | 陈洁(墨封) 阿里云开发工程师 导读:etcd 作为 K8s 集群中的存储组件,读写性能方面会受到很多压力,而 etcd 3.4 中的新特性将有效缓解压力,本文将从 etcd 数据读写机制 ...
 - Oracle SQL调优之绑定变量用法简介
			
目录 一.SQL执行过程简介 二.绑定变量典型用法 2.1.在SQL中绑定变量 2.2.在PL/SQL中使用绑定变量 2.3.PL/SQL批量绑定变量 2.4.Java代码里使用绑定变量 最近在看&l ...
 - 机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?
			
一篇文章就搞懂啦,这个必须收藏! 我们以图片分类来举例,当然换成文本.语音等也是一样的. Positive 正样本.比如你要识别一组图片是不是猫,那么你预测某张图片是猫,这张图片就被预测成了正样本. ...
 - [Linux][函数]flock函数的用法
			
表头文件 #include<sys/file.h> 定义函数 int flock(int fd,int operation); 函数说明 flock()会依参数operation所指 ...
 - 03爬虫-requests模块基础(1)
			
requests模块基础 什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块.功能强大,用法简洁高效. 为什么要是用requests模块 用以前的url ...
 - 判断dom原始是否在可视区域内
			
isElementInViewport (el, offset = 0) { const box = el.getBoundingClientRect(), top = (box.top >= ...