PIL的使用

PIL从0开始

pillow

from PIL import Image, ImageFilter, ImageDraw
1.路径
#相对路径
#imge1=Image.open('tupian/213813-154168429376d5.jpg')
#../上一级
#../../上两级
#绝对路径
# imge1=Image.open('D:\xiazai\玫瑰。jpg')
2.加载图片
# 1)加载图片,返回图片对象
# 图片地址可以是写绝对路径,也可以写相对路径
图片对象 = Image.open(图片地址)

# 2)显示图片
图片对象.show()	
# 3)保存图片
图片对象。save(图片地址)
3.使用滤镜
image1.filter(滤镜效果)
"""
滤镜效果:
ImageFilter.EMBOSS   -  浮雕效果
ImageFilter.FIND_EDGES - 泼墨效果
ImageFilter.SHARPEN  -  锐化滤波
ImageFilter.SMOOTH  -  平滑滤波
ImageFilter.EDGE_ENHANCE_MORE - 边界增强滤波(程度更深)
ImageFilter.EDGE_ENHANCE - 边界增强滤波
ImageFilter.DETAIL - 细节滤波
ImageFilter.CONTOUR - 轮廓滤波(铅笔画)
ImageFilter.BLUR - 模     糊滤波
"""
4.图片的剪切
图片对象.crop(范围)
范围: (起点x坐标,起点y坐标, 终点x坐标,终点y坐标)#左上右下
5.粘贴
图片对象1.paste(图片对象2,(x坐标,y坐标))
6.镜像
图片对象.transpose(对称方式)
# Image.FLIP_LEFT_RIGHT - 左右镜像
# Image.FLIP_TOP_BOTTOM - 上下镜像
7.缩放
图片对象.thumbnail((宽度, 高度))  - 自动按比例缩放
8.创建空白图片
Image.new(模式,图片大小, 背景颜色)
empty = Image.new('RGB', (1000, 1000), (0, 255, 255))
empty1 = Image.new('RGBA', (1000, 1000), (0, 255, 255,100))
#0完全透明,255完全不透明
#模式(rgb,rgba)r (255,0,0) red  g (0,255,0) green b (0,0,255) blue a 透明度
9.文字水印
# 1.创建一个空的图片
Image,new(模式,图片大小,背景颜色)
# 2.创建font对象
font=ImageFont.truetype(字体文件,字体大小)
# 3.创建draw对象
draw=ImageDraw.Draw(图片对象)
# 4.画文字
draw.text(坐标,文字,字体对象,文字颜色)
10.颜色块
# 1.创建一个图片对象(可以是空图片,也可以是已经存在的图片)
# 2.创建Draw对象
ImageDraw.Draw(图片对象)
# 3.设置点颜色
Draw对象.point(坐标,颜色)
*11. 带透明度的图片粘贴
from PIL import Image

layer1 = Image.open(背景图片地址).convert('RGBA')
layer2 = Image.open(带透明度的小图片的地址)
final1 = Image.new('RGBA', layer1.size, (255, 255, 0, 255))
final1 = Image.alpha_composite(final1, layer1)

final2 = Image.new('RGBA', layer1.size, (255,255,0,0))
final2.paste(layer2, (贴的位置的x坐标, 贴的位置的y坐标))
final1 = Image.alpha_composite(final1, final2)
final1.show()
12.效果
#浮雕效果ImageFilter.EMBOSS
imge2=imge1.filter(ImageFilter.EMBOSS)
imge2.show()
imge2.save('tupian/浮雕.jpg')

#铅笔画ImageFilter.CONTOUR
imge3=imge1.filter(ImageFilter.CONTOUR)
ige3.show()
 imge3.save('tupian/铅笔画.jpg')


#模糊效果ImageFilter.BLUR
imge4=imge1.filter(ImageFilter.BLUR)
imge4.show()
imge4.save('tupian/模糊.jpg')


#实体加强ImageFilter.EDGE_ENHANCE
imge5=imge1.filter(ImageFilter.EDGE_ENHANCE)
imge5.show()
imge5.save('tupian/EDGE_ENHANCE.jpg')

# 实体加强ImageFilter.SHARPEN
imge6=imge1.filter(ImageFilter.SHARPEN)
imge6.show()
imge6.save('tupian/SHARPEN.jpg')

# EDGE_ENHANCE_MORE
imge6=imge1.filter(ImageFilter.EDGE_ENHANCE_MORE)
imge6.show()
imge6.save('tupian/EDGE_ENHANCE_MORE.jpg')

imge6=imge1.filter(ImageFilter.SMOOTH)
imge6.show()
imge6.save('tupian/SMOOTH.jpg')
13.自定义效果
自定义效果
class  WH_PYTHON(ImageFilter.BuiltinFilter):
    name = "WH_Python"
    # fmt: off
    filterargs = (3, 3), 13, 0, (
        4, 4, 4,
        4, 10, 4,
        4, 4, 4,
    )

imge7=imge1.filter(WH_PYTHON)
imge7.show()
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页