当前位置:   article > 正文

python Pillow库的介绍和使用方法_pillow库怎么安装

pillow库怎么安装

python的Pillow库是一个用来处理图像的第三方库,它支持广泛的文件格式和操作,包括图片的打开、保存、剪裁、旋转、缩放、滤镜等。以下是Pillow库的介绍、使用方法和实战案例。

介绍

Pillow库是Python Imaging Library(PIL)的一个分支,提供简单易用的API以及对众多图像格式的支持。该库可以轻松完成常见的图像处理任务,比如调整颜色、裁剪、缩放等等,并且还有各种特效和滤镜可供使用。

使用方法

安装

安装Pillow库非常简单,只需要在终端中执行以下命令:

pip install Pillow

打开和显示图片

要使用Pillow库打开一张图片并显示它,可以使用下面的代码:

  1. from PIL import Image
  2. # 打开一张图片
  3. img = Image.open("image.jpg")
  4. # 显示图片
  5. img.show()

图片处理

Pillow库提供了许多功能强大的图像处理方法,如调整大小、旋转、裁剪、滤镜等。

调整大小

  1. from PIL import Image
  2. img = Image.open("image.jpg")
  3. # 缩放到50%
  4. smaller_img = img.resize((img.width // 2, img.height // 2))
  5. # 放大到200%
  6. bigger_img = img.resize((img.width * 2, img.height * 2))

旋转

  1. from PIL import Image
  2. img = Image.open("image.jpg")
  3. # 顺时针旋转90
  4. rotated_img = img.rotate(90)
  5. # 逆时针旋转45
  6. rotated_img = img.rotate(-45)

裁剪

  1. from PIL import Image
  2. img = Image.open("image.jpg")
  3. # 裁剪图片,左上角坐标为 (x1,y1),右下角坐标为 (x2,y2)
  4. cropped_img = img.crop((x1, y1, x2, y2))

滤镜

  1. from PIL import ImageFilter
  2. img = Image.open("image.jpg")
  3. # 应用模糊滤镜
  4. blurred_img = img.filter(ImageFilter.BLUR)
  5. # 应用边缘检测滤镜
  6. edge_detected_img = img.filter(ImageFilter.FIND_EDGES)

图片保存

处理完图片后,可以将其保存到本地。

  1. from PIL import Image
  2. img = Image.open("image.jpg")
  3. # 处理图片
  4. # 保存图片
  5. img.save("output.jpg")

案例

以下是一个实际应用Pillow库的案例:将一张图片转换为ASCII码,并输出到控制台上。

  1. from PIL import Image
  2. # ASCII字符集,按从深到浅的顺序排列
  3. ASCII_CHARS = ['@', '#', 'S', '%', '?', '*', '+', ';', ':', ',', '.']
  4. # 将像素值转换为ASCII字符
  5. def get_ascii_char(r, g, b):
  6. gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
  7. unit = (256.0 + 1) / len(ASCII_CHARS)
  8. return ASCII_CHARS[int(gray / unit)]
  9. # 打开一张图片
  10. img = Image.open("image.jpg")
  11. # 缩小图片以提高处理速度
  12. img = img.resize((int(img.width / 3), int(img.height / 3)))
  13. # 输出ASCII码
  14. for y in range(img.height):
  15. for x in range(img.width):
  16. r, g, b = img.getpixel((x, y))
  17. print(get_ascii_char(r, g, b), end='')
  18. print()

这个脚本将图片缩小到原来的三分之一大小,并使用getpixel方法获取每个像素的RGB值,将其转换为ASCII字符后输出到控制台上。

此文由ChatGPT自动生成,希望能帮到你。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/804123
推荐阅读
相关标签
  

闽ICP备14008679号