Python图片处理库之PIL

简介: 这个模块对于Python2.7 的windows64位电脑而言,还真的是不好找啊。这里分享一个下载链接吧,需要的朋友可以下载下来。PIL For Windows64 Python2.7下面分享一下这个库的简单的使用。

这个模块对于Python2.7 的windows64位电脑而言,还真的是不好找啊。这里分享一个下载链接吧,需要的朋友可以下载下来。PIL For Windows64 Python2.7下面分享一下这个库的简单的使用。


安装

上面的这个超链接是一个exe文件,点击安装的时候,会自动的探测你电脑上Python的安装位置,所以很方便。就不再过多的叙述了。

很多的小例子

这里是一些常用的相关的函数的使用,记得在你的代码的目录下面放一张图片,不然会报错的。


第一个小例子Firsttest.py

# coding:utf-8
import Image

"""
format: 识别图像的源格式,如果不是从文件中读取的,则被设置为None值
size:   返回的一个元组,有两个元素,其值为像素意义上的宽和高
mode:   RGB,此外还有L(Luminance),CTMK(pre-press image,呵呵我也不知道这是个神马)
"""

image = Image.open('hu.jpg')
print image.format, image.size, image.mode
# 用于将图片 使用本地的图片查看器打开
image.show()

手动制作一张图片

# coding:utf-8
import Image

image = Image.new("RGBA",(640,480),(123,213,123))
image.save('CreatedByPython.jpg','jpeg')

打开,保存操作

# coding:utf-8
import Image

"""
crop:   从原图层上剪切下来一个给定的矩形大小,此函数接收一个四元素的元组作为其参数,分别代表左上右下,原点为左上角
paste:  粘贴的含义,将剪切到的图像粘贴到某一个位置
merge:  合并,图像的合并操作
"""

image = Image.open('hu.jpg')
box = (100, 100, 300, 300)
mycrop = image.crop(box)
# # mycrop.show()
# mycrop.save('hu_crop.jpg')
#
# # 旋转180° 的图像显示
# # mycrop.transpose(Image.ROTATE_180).show()
#
# # 将剪切板上的图像粘贴到某张图片上,粘贴的位置根据box而定
# image.paste(mycrop, box)
# image.show()
mycrop.rotate(Image.ROTATE_180)
image.paste(mycrop,box)
image.save('pasted.jpg','jpeg')

对图片上的每个像素点进行操作

# coding:utf-8

import Image

"""
    image.point(function) 这个function接收一个参数,且对图像的每一个点都会进行这个函数的变换
"""

image = Image.open('hu.jpg')
image = image.point(lambda i : i * 1.5)
image.show()

旋转图片

# coding:utf-8

import Image

image = Image.open("hu.jpg")

# 下面的几行代码可以较好的呈现出图片的变化情况
image.rotate(45).show()
image.rotate(90).show()
image.rotate(180).show()
image.rotate(270).show()
image.rotate(360).show()

缩放图片

# coding:utf-8

import Image
import glob, os

size = 128, 128

image = Image.open('hu.jpg')
# 调用thumbnail方法完成对图片的处理
image.thumbnail(size, Image.ANTIALIAS)
image.save("hu_scale.jpg")

图层通道操作

#coding:utf-8

import Image

"""
    r,g,b=im.split()#分割成三个通道,此时r,g,b分别为三个图像对象。
    im=Image.merge("RGB",(b,g,r))#将b,r两个通道进行翻转。
"""

image = Image.open('hu.jpg')
r,g,b = image.split()
r.save('Split/r.jpg','jpeg')
g.save('Split/g.jpg','jpeg')
b.save('Split/b.jpg','jpeg')
image = Image.merge("RGB",(b,g,r))
image.save('Split/mergedByBGR.jpg','jpeg')
image = Image.merge("RGB",(g,r,b))
image.save('Split/mergedByGRB.jpg','jpeg')
image = Image.merge("RGB",(r,g,b))
image.save('Split/mergedByRGB.jpg','jpeg')

转换操作

# coding:utf-8

import Image

image = Image.open('hu.jpg')
# 格外应该注意这里 接受一个元组参数
image.resize((200, 200))
# 链式的调用可以显示改变的效果,换行了貌似就不行了。:-)
image.rotate(45) # 旋转45°
image.transpose(Image.FLIP_LEFT_RIGHT).show() # 左右对换
image.transpose(Image.FLIP_TOP_BOTTOM).show() # 上下对换
image.transpose(Image.ROTATE_90).show()       # 旋转90°

超多特效(滤镜效果)

# coding:utf-8

import Image, ImageFilter

"""
色彩空间的变换,convert函数可以用来将图像转换为不同的色彩模式
"""

image = Image.open('hu.jpg')
# image.filter(ImageFilter.DETAIL).show() # 真实效果展现
# image.filter(ImageFilter.BLUR).show()   # 以模糊化的效果展现
# image.filter(ImageFilter.CONTOUR).show()  # 以铅笔画的效果展现
# image.filter(ImageFilter.FIND_EDGES).show()  # 以铅笔画黑色背景展示
# image.filter(ImageFilter.EDGE_ENHANCE).show()  # 线条高亮的显示效果
# image.filter(ImageFilter.EDGE_ENHANCE_MORE).show()  # 强化线条高亮
# image.filter(ImageFilter.EMBOSS).show()  # 浮雕效果
# image.filter(ImageFilter.GaussianBlur).show()  # 也是模糊化的显示效果
# image.filter(ImageFilter.SMOOTH_MORE).show()
# image.filter(ImageFilter.GaussianBlur).save('Filter/GaussianBlur.jpg','jpeg')
image.transpose(Image.FLIP_LEFT_RIGHT).save('left_to_right.jpg','jpeg')

总结

上面罗列出的仅仅是PIL库中的Image模块的部分的函数,里面还有很多东西值得去挖掘。但如果仅仅是简单的一些操作,上面的也差不多够了。

目录
相关文章
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
73 20
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
185 77
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
71 11
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
2月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
88 4
|
3月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
226 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
3月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
198 4
数据分析的 10 个最佳 Python 库

热门文章

最新文章

推荐镜像

更多