python--没工具也能用P图(转)

学习资料来自:
https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/15.%E5%9B%BE%E5%83%8F%E5%92%8C%E5%8A%9E%E5%85%AC%E6%96%87%E6%A1%A3%E5%A4%84%E7%90%86.md

安装pillow三⽅库。
PIL(Python Imaging Library)是Python平台事实上的图像处理标准库了。PIL功能⾮常强⼤,
⽽API却⾮常简单易⽤。但是PIL仅⽀持到Python 2.7,⽽且很多年都没有⼈维护了,于是⼀群志
愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,除了⽀持Python 3.x还加⼊了很多有⽤且
有趣的新特性。

 pip install pillow
或 pip3 install pillow

1、加载图片

from PIL import Image

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')
chiling.show()

2、滤波器

函数定义参考于
Python图像处理库PIL的滤波_ImageFilter

ImageFilter.BLUR为模糊滤波,处理之后的图像会整体变得模糊。
ImageFilter.CONTOUR为轮廓滤波,将图像中的轮廓信息全部提取出来。
ImageFilter.DETAIL为细节增强滤波,会使得图像中细节更加明显。
ImageFilter.EDGE_ENHANCE为边缘增强滤波,突出、加强和改善图像中不同灰度区域之间的边界和轮廓的图像增强方法。经处理使得边界和边缘在图像上表现为图像灰度的突变,用以提高人眼识别能力。
ImageFilter.EDGE_ENHANCE_MORE为深度边缘增强滤波,会使得图像中边缘部分更加明显。
ImageFilter.EMBOSS为浮雕滤波,会使图像呈现出浮雕效果。
ImageFilter.FIND_EDGES为寻找边缘信息的滤波,会找出图像中的边缘信息。
ImageFilter.SMOOTH为平滑滤波,突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量。
ImageFilter.SMOOTH_MORE为深度平滑滤波,会使得图像变得更加平滑。
ImageFilter.SHARPEN为锐化滤波,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。
from PIL import Image
from PIL import ImageFilter

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')

# 使用滤镜
img1 = chiling.filter(ImageFilter.EMBOSS)   # 模糊滤波,处理之后的图像会整体变得模糊
img1.show()
img2 = chiling.filter(ImageFilter.CONTOUR)  # 轮廓滤波,将图像中的轮廓信息全部提取出来。
img2 .show()


原图:
在这里插入图片描述
模糊滤波,处理之后的图像会整体变得模糊:
在这里插入图片描述
轮廓滤波,将图像中的轮廓信息全部提取出来:
在这里插入图片描述

3、图像剪裁和粘贴

from PIL import Image
from PIL import ImageFilter

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')

rect = 220, 690, 265, 740
watch = chiling.crop(rect)
watch.show()

blured_watch = watch.filter(ImageFilter.GaussianBlur(4))
chiling.paste(blured_watch, (220, 690))
chiling.show()

在这里插入图片描述

4、⽣成镜像

from PIL import Image
from PIL import ImageFilter

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')

# ⽣成镜像。
chiling2 = chiling.transpose(Image.FLIP_LEFT_RIGHT)
chiling2.show()

在这里插入图片描述

5、⽣成缩略图

from PIL import Image
from PIL import ImageFilter

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')

width, height = chiling.size
width, height = int(width * 0.4), int(height * 0.4)
print(type(chiling))
chiling.thumbnail((width, height))

6、合成图⽚

from PIL import Image
from PIL import ImageFilter

# 加载图片
chiling = Image.open('C:\\Users\\Lenovo\\Desktop\\2.jpg')
chiling.show()
frame = Image.open('C:\\Users\\Lenovo\\Desktop\\1.jpg')
frame.show()
frame.paste(chiling, (150, 120))
frame.show()

1.jpg
在这里插入图片描述
2.jpg
在这里插入图片描述
合成
在这里插入图片描述

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页