Python3 - pillow的基本用法(第三天)
文章目录
- pillow
- 1.什么是pillow
- 2.安装pillow的安装
- 临时更新
- 永久更新
- 国内下载源
- Windows 添加方式:
- pip 相关的指令
- 3.加载图片
- 4.修改图片
- 5.打马赛克
- 6.打文字马赛克
- 7.自定义图片
pillow
1.什么是pillow
PIL – Python Imaging library, 专属于Python2.x中对图像进行处理的。
pillow 是 PIL的一个分支, 支持Python3
2.安装pillow的安装
安装三方包的工具是用的是pip, 默认是国外网站:https://pypi.python.org/simple
这个网站是用来下载安装第三方工具的, 因为这是一个国外的网站, 下载速度慢, 容易请求超时; 所以建议使用国内镜像:https://mirrors.aliyun.com/pypi/simple
更新pip的下载源
临时更新
在下载安装的时候, 临时用一下
pip install 安装包名 -i 国内下载源
永久更新
1.如果是通过cmd来下载的话, 怎么永久更新在当前系统用户下创建一个文件夹 pip, 在这个文件夹下创建一个pip.ini配置文件, 在文件中添加一下内容 [global]index-url=国内下载源
2.如果通过pycharm下载的话: Windows: File - setting - project - python interpreter - 点击下方的+号 - Manager Repositories --- 编辑添加即可Apple: Prefernces - project - python interpreter - 点击下方的+号 - Manager Repositories --- 编辑添加即可
国内下载源
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
Windows 添加方式:
用户名/pip/pip.ini
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
pip install pillow
pip 相关的指令
pip install 安装包 --- 安装指定的三方包
pip uninstall 安装包 --- 卸载指定的三方包
pip list --- 显示已经安装的安装包
3.加载图片
from PIL import Image # 操作图片的类型# 加载图片
currentImage = Image.open('./image/000.png')
print(currentImage)# 显示图片
# image.show()# 获取原本的尺寸
print(currentImage.size) # (512, 512) 元祖类型的数据 currentImage.size[0] ---- 512 currentImage.size[1] ---- 512# 获取模式
print(currentImage.mode) # RGB# 显示图片的格式
print(currentImage.format) # PNG# 图片的详细信息
print(currentImage.info)# 保存图片
# currentImage.save('./lufei.png')
4.修改图片
from PIL import Image, ImageFilter# 1. 读取图片
currentImg = Image.open('./image/000.png')'''
# 2. 修改图片尺寸
print(currentImg.size)
image1 = currentImg.resize((currentImg.size[0]//3, currentImg.size[1]//3))# image1.show()# 保存
image1.save('./image/lufei_small.png')
'''# 3. 修改图片的色系 --- 由彩色转为灰色
# image2 = currentImg.convert('L')
# image2.show()
# image2.save('./image/lufei_gray.png')# 4. 对图片进行过滤操作
# image3 = currentImg.filter(ImageFilter.EMBOSS) # 浮雕
# image3 = currentImg.filter(ImageFilter.CONTOUR) # 铅笔画
# image3 = currentImg.filter(ImageFilter.FIND_EDGES) # 描边形式
# image3 = currentImg.filter(ImageFilter.GaussianBlur) # 高斯模糊滤镜
# image3 = currentImg.filter(ImageFilter.BLUR) # 模糊效果
# image3.show()# 5. 裁剪图片
# 设置一个边缘间距 [left, upper, right, lower]
# 左上角和右下角
# image4 = currentImg.crop(box=(10, 20, 20, 20))
# image4.show()# 6. 图片旋转
# image5 = currentImg.rotate(90)
# image5.show()# 设置旋转点
# image6 = currentImg.rotate(45, center=(0, 0))
# image6.show()# 7. 图片翻转
image7 = currentImg.transpose(Image.FLIP_LEFT_RIGHT) # FLIP_TOP_BOTTOM 左右或上下翻转
image7.show()
5.打马赛克
from PIL import Image# 读取图片
currentImg = Image.open('./image/000.png')# 读取粘贴的图片
paste_img = Image.open('./image/2-4.png')# 修改一下尺寸
p_img = paste_img.resize((100, 100))
# currentImg.paste(p_img) # 默认把图片粘贴到左上角
# currentImg.show()# box 要粘贴的左上角要定位到哪一点
# currentImg.paste(p_img, box=[currentImg.size[0] - p_img.size[0], 0])
# currentImg.show()# 把自己的照片粘贴到右下角, 加上自己的收款二维码
currentImg.paste(p_img, box=[currentImg.size[0] - p_img.size[0], currentImg.size[1] - p_img.size[1]])
currentImg.show()
6.打文字马赛克
from PIL import Image, ImageDraw, ImageFont # ImageDraw 是在图片上进行绘制# 读取图片
currentImg = Image.open('./image/2-4.png')# 添加文字
draw = ImageDraw.Draw(currentImg) # 把要进行绘制的图片传递到绘制对象中# draw 通过这个对象进行绘制
# text(坐标(x, y), 内容, file=颜色, font=字体)
# draw.text(xy=(10, 10), text='Hello world!') # 默认不支持汉字编码font = ImageFont.truetype('./font/simheittf.ttf',size=30)
# draw.text((10, 10), text='你好呀,哈哈!', font=font)
draw.text((10, 10), text='你好呀,哈哈!', font=font, fill=(255,0,0,1))
currentImg.show()
7.自定义图片
from PIL import Image,ImageDraw
import random# mode 图片的颜色系列, RGB彩色, L灰色
# size 图片大小
# color 设置rgb值, 图片的底色, 默认为黑色
img = Image.new('RGB',(400, 400), color=(255, 0, 0))pz = Image.open('./image/000.png')
pz = pz.resize((200, 200))
img.paste(pz, box=(0, 0))carImg = Image.open('./image/022.png')
carImg = carImg.resize((200, 200))
img.paste(carImg, box=(img.size[0] - carImg.size[0],img.size[1] - carImg.size[1]))draw = ImageDraw.Draw(img)# 双层循环生成颜色块
for i in range(pz.size[1]//10):for c in range((img.size[0] - pz.size[0]//10)):r = random.randint(0, 255)g = random.randint(0, 255)b = random.randint(0, 255)draw.rectangle((img.size[0]-pz.size[0] + c*10, i*10, img.size[0]-pz.size[0]+c*10+10, i*10+10), fill=(r, g, b))
img.show()
Python3 - pillow的基本用法(第三天)相关推荐
- Pillow库的用法
Pillow库的用法 PIL 基础语法 一. 简介 1. 基本介绍 2. 特点 3. 安装 二. Image 对象 1. 实例化对象 1.1 实例化 1.2 图像模式 2. 对象属性 3. 格式转换 ...
- Python图像处理模块pillow子模块Image用法精要
Image是pillow库中一个非常重要的模块,提供了大量用于图像处理的方法.使用该模块时,首先需要导入. >>> from PIL import Image 接下来,我们通过几个示 ...
- python3中 operator模块用法介绍
文章目录 概述 将运算符映射到函数 1基本方法 介绍 2 三个类介绍 2-1 attrgetter 介绍 2-2 itemgetter 使用介绍 1 用来排序 2 通过 获取多个值 2-3 metho ...
- Python3 实现用户登陆,输入三次密码
不加注释版 #/usr/bin/python3 import readline user = "seven" passwd = "123" username = ...
- el表达式的语法_「手把手教python3接口自动化」「第三章」:Python3 语法
1 Python3 语法 1.1 基础语法 [编码] 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码. [标 ...
- 枚举类型用法_Mybatis-plus常见用法总结三
前面已经介绍了Mybatis-plus基本用法,今天为大家分享一些Mybatis-plus高级应用 逻辑删除 自动注入 枚举类型处理 Sql注入器 多租户 表结构 CREATE TABLE `sys_ ...
- 带你自学Python系列(十三):Python函数的用法(三)
↑ 点击上方[计算机视觉联盟]关注我们 今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第13天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言.你和小编一起打卡 ...
- C++开源矩阵计算工具——Eigen的简单用法(三)
本节主要涉及Eigen的块操作以及QR分解,Eigen的QR分解非常绕人,搞了很久才搞明白是怎么回事,最后是一个使用Eigen的矩阵操作完成二维高斯拟合求取光点的代码例子,关于二维高斯拟合求取光点的详 ...
- python3常用模块_Python学习笔记三(常用模块)
Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...
最新文章
- 机器学习拓展知识(数学/统计/算法)
- Oracle表空间管理
- div滚动到指定位置 vue_【Vue 进阶】从 slot 到无渲染组件
- linux boost 卸载,Ubuntu下boost库的编译安装步骤及卸载方法详解
- java文字转语音支持ubuntu系统_9个(实时)语音转文字APP分享(推荐收藏)
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
- 启用和禁止Oracle的dbms_job
- C++两种编写单件模式方法对比
- mysql-proxy 读写分离_mysql 基于mysql-proxy实现读写分离
- 软件测试和初级会计哪个简单,2018年初级会计app刷题哪个好?
- MAML小样本学习算法解读及基于飞桨的代码实现
- 【常识】常用RGB颜色对照表
- 《Mysql必知必会》笔记
- OBCA认证知识点-part3
- 产品思维的修炼–技术的必修课
- FS9017R.是一款单节4.2V锂电池充电管理IC
- 使用Python制作证件照
- Mina中的wrap snark
- python 将任意图片格式(png等)转换成jpg
- 华为SDH传输设备时钟配置方法
热门文章
- Win10下的WSL(Linux子系统)开发环境搭建(PHP+Nginx+Mysql+Composer)
- c语言中用age表示年龄的词语,求古代形容年龄的词,比如花甲,古稀之类的,要齐全。谢谢!!...
- 用NCBI的工具Batch Entrez批量下载序列
- 1、ABP 文档介绍
- A Monocular SLAM System Leveraging Structural Regularity in Manhattan World
- Java反编译器JD
- PMP项目管理培训总结
- Linux编程技术总结
- Android应用开发性能优化完全分析,移动应用开发课程报告
- 特写 | CVPR十年轶事:走出象牙塔