优草派  >   Python

python pillow 教程

王晨            来源:优草派

Python Pillow 是一个 Python 图像处理库,可以用于打开、编辑和保存多种图像格式。它是 PIL(Python Imaging Library)的分支,是 Python 中最受欢迎的图像处理库之一。在本文中,我们将从多个角度分析 Python Pillow 的使用,包括基本操作、图像处理、图像增强、图像滤波、图像转换等。

基本操作

python pillow 教程

Python Pillow 可以打开、创建和保存多种图像格式,如 JPEG、PNG、BMP、GIF 等。要打开图像,可以使用 Image.open() 方法。例如,以下代码将打开名为 image.jpg 的 JPEG 文件:

```

from PIL import Image

image = Image.open('image.jpg')

image.show()

```

要创建新图像,可以使用 Image.new() 方法。例如,以下代码将创建一个大小为 500x500 像素的红色图像:

```

from PIL import Image

image = Image.new('RGB', (500, 500), 'red')

image.show()

```

要保存图像,可以使用 Image.save() 方法。例如,以下代码将将一个名为 output.png 的 PNG 文件保存到当前目录中:

```

from PIL import Image

image = Image.open('image.jpg')

image.save('output.png')

```

图像处理

Python Pillow 可以进行各种图像处理操作,如裁剪、缩放、旋转、翻转等。要裁剪图像,可以使用 Image.crop() 方法。例如,以下代码将裁剪名为 image.jpg 的图像的中心区域:

```

from PIL import Image

image = Image.open('image.jpg')

width, height = image.size

left = (width - 300) / 2

top = (height - 300) / 2

right = (width + 300) / 2

bottom = (height + 300) / 2

cropped_image = image.crop((left, top, right, bottom))

cropped_image.show()

```

要缩放图像,可以使用 Image.resize() 方法。例如,以下代码将将名为 image.jpg 的图像缩放为原来的一半大小:

```

from PIL import Image

image = Image.open('image.jpg')

width, height = image.size

resized_image = image.resize((int(width/2), int(height/2)))

resized_image.show()

```

要旋转图像,可以使用 Image.rotate() 方法。例如,以下代码将将名为 image.jpg 的图像逆时针旋转 45 度:

```

from PIL import Image

image = Image.open('image.jpg')

rotated_image = image.rotate(-45)

rotated_image.show()

```

要翻转图像,可以使用 Image.transpose() 方法。例如,以下代码将将名为 image.jpg 的图像水平翻转:

```

from PIL import Image

image = Image.open('image.jpg')

flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT)

flipped_image.show()

```

图像增强

Python Pillow 可以增强图像的亮度、对比度、色调、饱和度等。要增强图像的亮度,可以使用 ImageEnhance.Brightness() 方法。例如,以下代码将将名为 image.jpg 的图像亮度增强 50%:

```

from PIL import Image

from PIL import ImageEnhance

image = Image.open('image.jpg')

enhancer = ImageEnhance.Brightness(image)

brightened_image = enhancer.enhance(1.5)

brightened_image.show()

```

要增强图像的对比度,可以使用 ImageEnhance.Contrast() 方法。例如,以下代码将将名为 image.jpg 的图像对比度增强 50%:

```

from PIL import Image

from PIL import ImageEnhance

image = Image.open('image.jpg')

enhancer = ImageEnhance.Contrast(image)

contrasted_image = enhancer.enhance(1.5)

contrasted_image.show()

```

要增强图像的色调,可以使用 ImageEnhance.Color() 方法。例如,以下代码将将名为 image.jpg 的图像色调增强 50%:

```

from PIL import Image

from PIL import ImageEnhance

image = Image.open('image.jpg')

enhancer = ImageEnhance.Color(image)

colored_image = enhancer.enhance(1.5)

colored_image.show()

```

要增强图像的饱和度,可以使用 ImageEnhance.Sharpness() 方法。例如,以下代码将将名为 image.jpg 的图像饱和度增强 50%:

```

from PIL import Image

from PIL import ImageEnhance

image = Image.open('image.jpg')

enhancer = ImageEnhance.Sharpness(image)

sharpened_image = enhancer.enhance(1.5)

sharpened_image.show()

```

图像滤波

Python Pillow 可以对图像进行各种滤波操作,如模糊、锐化、边缘检测等。要模糊图像,可以使用 ImageFilter.BLUR() 方法。例如,以下代码将将名为 image.jpg 的图像模糊:

```

from PIL import Image

from PIL import ImageFilter

image = Image.open('image.jpg')

blurred_image = image.filter(ImageFilter.BLUR)

blurred_image.show()

```

要锐化图像,可以使用 ImageFilter.SHARPEN() 方法。例如,以下代码将将名为 image.jpg 的图像锐化:

```

from PIL import Image

from PIL import ImageFilter

image = Image.open('image.jpg')

sharpened_image = image.filter(ImageFilter.SHARPEN)

sharpened_image.show()

```

要进行边缘检测,可以使用 ImageFilter.FIND_EDGES() 方法。例如,以下代码将将名为 image.jpg 的图像进行边缘检测:

```

from PIL import Image

from PIL import ImageFilter

image = Image.open('image.jpg')

edges_image = image.filter(ImageFilter.FIND_EDGES)

edges_image.show()

```

图像转换

Python Pillow 可以将图像转换为不同的模式和格式。要将图像转换为灰度模式,可以使用 Image.convert() 方法。例如,以下代码将将名为 image.jpg 的图像转换为灰度模式:

```

from PIL import Image

image = Image.open('image.jpg')

gray_image = image.convert('L')

gray_image.show()

```

要将图像转换为 RGB 模式,可以使用 Image.convert() 方法。例如,以下代码将将名为 image.jpg 的图像转换为 RGB 模式:

```

from PIL import Image

image = Image.open('image.jpg')

rgb_image = image.convert('RGB')

rgb_image.show()

```

要将图像保存为不同的格式,可以使用 Image.save() 方法并指定文件类型。例如,以下代码将将名为 image.jpg 的图像保存为名为 output.png 的 PNG 文件:

```

from PIL import Image

image = Image.open('image.jpg')

image.save('output.png', 'PNG')

```

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行