使用 Python Image Library (PIL), 需要先导入相关模块:

import Image

如何加载图片

im = Image.open(r"D:/www/icon_1.jpg")

如果加载发生错误,会引发 IOError.

打印出图片的格式、大小、模式

print im.format, im.size, im.mode

图片的显示,用 show() 方法

im.show()

show() 需要调用 xv 程序,适合调试和测试。在 Windows 上通常是调用相关的关联程序来打开(我的是 AcdSee)。注意这个方法在显示前会自动创建临时文件。

图片的保存

im.save(r"d:/www/icon_1.gif")

默认会自动根据目标文件扩展名判断保存的格式,但可以给 save 方法提供第二个参数指定格式。

创建缩略图

im.thumbnail((128, 128))
im.save(r"d:/www/icon_1.thumbnail", "JPEG")


图片的区域裁剪

用 crop 方法可以裁剪图片中的一个矩形区域

box = (100, 100, 400, 400) # (left, upper, right, lower)
region = im.crop(box)

图片的粘贴

处理上面的区域,然后粘贴回来:

region = region.transpose(Image.ROTATE_180)
im.paste(region, box)

需要注意粘贴的时候目标区域大小要和被粘贴的图片一样大。

高级技巧:paste 方法可以指定可选参数,设定透明度(0~255).

PIL 还可以处理 multi-band 图片的每个独立的 band. 比如 RGB. 然后用 merge 函数重新合并:

r, g, b = im.split()
im = Image.merge("RGB", (b, g, r))

PIL 学习笔记(1)相关推荐

  1. Lua入门系列----pil学习笔记之Getting Start

    本文作者:sodme 本文出处:http://blog.csdn.net/sodme 声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明 ...

  2. PIL 学习笔记(3)

    图片序列(Image Sequences,也叫动画格式, animation formats) PIL 对图片序列有一些基础的支持.支持 FLI/FLC, GIP 和其他一些格式,TIFF 文件也可以 ...

  3. Python学习笔记:使用PIL批量合成jpg+png图片,用于水印、合并图片,生成YOLO数据集+标注数据等等

    [Python学习笔记] 使用PIL,批量合成jpg+png图片,用于水印.合并图片,生成YOLO数据集+标注数据等等 起因:在了解很多关于YOLOv5的相关内容,于是尝试着去训练自己的游戏目标检测模 ...

  4. Programming Computer Vision with Python (学习笔记一)

    转载自:http://segmentfault.com/a/1190000003941588 介绍 <Programming Computer Vision with Python>是一本 ...

  5. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. 【theano-windows】学习笔记十二——卷积神经网络

    前言 按照进度, 学习theano中的卷积操作 国际惯例, 来一波参考网址 Convolutional Neural Networks (LeNet) 卷积神经网络如何应用在彩色图像上? 卷积小知识 ...

  7. 阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  8. Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】

    Python3 爬虫学习笔记第十四章 -- [验证码对抗系列 - 点触验证码] 文章目录 [14.1]关于点触验证码 [14.2]点触验证码攻克思路 [14.3]模拟登录 12306 - 总体思路 [ ...

  9. Python3 爬虫学习笔记 C13【验证码对抗系列 — 滑动验证码】

    Python3 爬虫学习笔记第十三章 -- [验证码对抗系列 - 滑动验证码] 文章目录 [13.1]关于滑动验证码 [13.2]滑动验证码攻克思路 [13.3]模拟登录 bilibili - 总体思 ...

最新文章

  1. js实现图片虚化_js canvas画布实现高斯模糊效果
  2. 少女时代成为主流:这是一件好事吗?
  3. php 的包管理工具 composer
  4. 第 127 章 Piranha - Cluster administation tools
  5. 《程序是怎样跑起来的》第一章读后感
  6. [YTU]_2536( C++ 长方体继承自矩形)
  7. React项目动态设置title标题
  8. 数据库中DDL,DML,DCL
  9. git.exe 启动 慢_四川成都surface电脑启动到一半黑屏维修服务地址电话
  10. JavaScript indexOf() 方法
  11. [CENTOS7] [IPTABLES] 卸载Firewall Id安装 IPTABLES及防火墙设置
  12. vue获取接口数据_c#中HttpWebRequest调用接口获取数据
  13. do something for your dream
  14. 【全网最详细】 树莓派控制ws2812b灯带 点亮教程
  15. WPS表格 JSA 学习笔记
  16. 【加法器】——模拟电路设计简单的二进制数加法器
  17. 猜数字游戏 由计算机,猜数字游戏实验报告
  18. 翼支付门户架构之搭建SpringMvc环境
  19. 从零开始搭建完整的电影全栈系统(六)——影片Api示例、说明及应用
  20. MIT6.824 Lab1 MapReduce

热门文章

  1. 关于tr:hover变色的问题
  2. 线程间操作无效: 从不是创建控件“button2”的线程访问它
  3. Spring Cloud基础教程
  4. debian/deepin 15.3 15.4安装jdk 1.7 (或jdk 7),配置默认环境
  5. Android Studio 中快速提取方法
  6. 用wubi在一个独立分区硬件装ubuntu12.04产生的无法识别U盘的解决办法
  7. Java程序员时刻铭记的Git常用命令
  8. 结合JDK源码看设计模式——桥接模式
  9. webapi+ajax跨域问题及cookie设置
  10. 最短路最基本算法———Floyd算法