文章目录

  • 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的基本用法(第三天)相关推荐

  1. Pillow库的用法

    Pillow库的用法 PIL 基础语法 一. 简介 1. 基本介绍 2. 特点 3. 安装 二. Image 对象 1. 实例化对象 1.1 实例化 1.2 图像模式 2. 对象属性 3. 格式转换 ...

  2. Python图像处理模块pillow子模块Image用法精要

    Image是pillow库中一个非常重要的模块,提供了大量用于图像处理的方法.使用该模块时,首先需要导入. >>> from PIL import Image 接下来,我们通过几个示 ...

  3. python3中 operator模块用法介绍

    文章目录 概述 将运算符映射到函数 1基本方法 介绍 2 三个类介绍 2-1 attrgetter 介绍 2-2 itemgetter 使用介绍 1 用来排序 2 通过 获取多个值 2-3 metho ...

  4. Python3 实现用户登陆,输入三次密码

    不加注释版 #/usr/bin/python3 import readline user = "seven" passwd = "123" username = ...

  5. el表达式的语法_「手把手教python3接口自动化」「第三章」:Python3 语法

    1 Python3 语法 1.1 基础语法 [编码] 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码. [标 ...

  6. 枚举类型用法_Mybatis-plus常见用法总结三

    前面已经介绍了Mybatis-plus基本用法,今天为大家分享一些Mybatis-plus高级应用 逻辑删除 自动注入 枚举类型处理 Sql注入器 多租户 表结构 CREATE TABLE `sys_ ...

  7. 带你自学Python系列(十三):Python函数的用法(三)

    ↑ 点击上方[计算机视觉联盟]关注我们 今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第13天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言.你和小编一起打卡 ...

  8. C++开源矩阵计算工具——Eigen的简单用法(三)

    本节主要涉及Eigen的块操作以及QR分解,Eigen的QR分解非常绕人,搞了很久才搞明白是怎么回事,最后是一个使用Eigen的矩阵操作完成二维高斯拟合求取光点的代码例子,关于二维高斯拟合求取光点的详 ...

  9. python3常用模块_Python学习笔记三(常用模块)

    Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...

最新文章

  1. 机器学习拓展知识(数学/统计/算法)
  2. Oracle表空间管理
  3. div滚动到指定位置 vue_【Vue 进阶】从 slot 到无渲染组件
  4. linux boost 卸载,Ubuntu下boost库的编译安装步骤及卸载方法详解
  5. java文字转语音支持ubuntu系统_9个(实时)语音转文字APP分享(推荐收藏)
  6. 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
  7. 启用和禁止Oracle的dbms_job
  8. C++两种编写单件模式方法对比
  9. mysql-proxy 读写分离_mysql 基于mysql-proxy实现读写分离
  10. 软件测试和初级会计哪个简单,2018年初级会计app刷题哪个好?
  11. MAML小样本学习算法解读及基于飞桨的代码实现
  12. 【常识】常用RGB颜色对照表
  13. 《Mysql必知必会》笔记
  14. OBCA认证知识点-part3
  15. 产品思维的修炼–技术的必修课
  16. FS9017R.是一款单节4.2V锂电池充电管理IC
  17. 使用Python制作证件照
  18. Mina中的wrap snark
  19. python 将任意图片格式(png等)转换成jpg
  20. 华为SDH传输设备时钟配置方法

热门文章

  1. Win10下的WSL(Linux子系统)开发环境搭建(PHP+Nginx+Mysql+Composer)
  2. c语言中用age表示年龄的词语,求古代形容年龄的词,比如花甲,古稀之类的,要齐全。谢谢!!...
  3. 用NCBI的工具Batch Entrez批量下载序列
  4. 1、ABP 文档介绍
  5. A Monocular SLAM System Leveraging Structural Regularity in Manhattan World
  6. Java反编译器JD
  7. PMP项目管理培训总结
  8. Linux编程技术总结
  9. Android应用开发性能优化完全分析,移动应用开发课程报告
  10. 特写 | CVPR十年轶事:走出象牙塔