PIL基础操作

Posted 总要做些什么

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PIL基础操作相关的知识,希望对你有一定的参考价值。

PIL基础操作

打开图片

BASE_PATH = os.path.dirname(os.path.abspath(__file__))

file_path = os.path.join(BASE_PATH, "fj.jpg")

# 打开图片
img = Image.open(file_path)

"""
format : 识别图像的源格式,如果该文件不是从文件中读取的,则被置为 None 值。
size : 返回的一个元组,有两个元素,其值为象素意义上的宽和高。
mode : 
· 1 (1-bit pixels, black and white, stored with one pixel per byte)
· L (8-bit pixels, black and white)
· P (8-bit pixels, mapped to any other mode using a colour palette)
· RGB (3x8-bit pixels, true colour)
· RGBA (4x8-bit pixels, true colour with transparency mask)
· CMYK (4x8-bit pixels, colour separation)
· YCbCr (3x8-bit pixels, colour video format)
· I (32-bit signed integer pixels)
· F (32-bit floating point pixels)
"""

print img.format, img.size, img.mode, img.height, img.width
# h,w = img.size    # (X,Y)
等价于
# h = img.heigth
# w = img.width

# 缩略图
img.thumbnail((w*0.75, h//2))
img.save("1.jpg", "JPEG")

# 应用模糊滤镜:
im2 = img.filter(ImageFilter.BLUR)
# 存储图片 im2.save(‘blur.jpg‘, ‘JPEG‘)
技术分享图片
• BLUR:模糊滤波
• CONTOUR:轮廓滤波
• DETAIL:细节滤波
• EDGE_ENHANCE:边界增强滤波
• EDGE_ENHANCE_MORE:边界增强滤波(程度更深)
• EMBOSS:浮雕滤波
• FIND_EDGES:寻找边界滤波
• SMOOTH:平滑滤波
• SMOOTH_MORE:平滑滤波(程度更深)
• SHARPEN:锐化滤波
• GaussianBlur(radius=2):高斯模糊
>radius指定平滑半径。
• UnsharpMask(radius=2, percent=150, threshold=3):反锐化掩码滤波
>radius指定模糊半径;
>percent指定反锐化强度(百分比);
>threshold控制被锐化的最小亮度变化。
• Kernel(size, kernel, scale=None, offset=0):核滤波
当前版本只支持核大小为3x3和5x5的核大小,且图像格式为“L”和“RGB”的图像。
>size指定核大小(width, height);
>kernel指定核权值的序列;
>scale指定缩放因子;
>offset指定偏移量,如果使用,则将该值加到缩放后的结果上。
• RankFilter(size, rank):排序滤波
>size指定滤波核的大小;
>rank指定选取排在第rank位的像素,若大小为0,则为最小值滤波;若大小为size * size / 2则为中值滤波;若大小为size *
size - 1则为最大值滤波。
• MedianFilter(size=3):中值滤波
>size指定核的大小
• MinFilter(size=3):最小值滤波器
>size指定核的大小
• MaxFilter(size=3):最大值滤波器
>size指定核的大小
• ModeFilter(size=3):波形滤波器
选取核内出现频次最高的像素值作为该点像素值,仅出现一次或两次的像素将被忽略,若没有像素出现两次以上,则保留原像素值。
>size指定核的大小
ImageFilter类预定义滤波

 

以上是关于PIL基础操作的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PIL 生成圆形缩略图?

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

python 利用PIL库进行更改图片大小的操作

PIL基础

在 Tkinter 中调整 PIL 中的图片大小

python中PIL模块