在开发中,有时会遇到对图片的处理需求,在 Python中, PIL/Pillow 库非常强大和易用。
image
image
读取、新建图片
读取
os.Open()
unknown format
Decodeimage.Image
image 库中很多结构都实现了该接口,对于一些标准库中没有实现的功能,我们也可以自己实现该接口去满足。
新建
image.NewRGBA()
NewRGBAimage.Imageimage.RGBA
保存图片
保存图片和保存文件也类似,需要先将图片编码,然后以数据流的形式写入文件。
裁剪图片
SubImage()
该方法将从创建的300 * 300的图片裁剪出20 * 20 像素的子图片。
绘制图片
draw.Drawdraw.DrawMask
Draw
Draw
- dst 绘图的背景图
- r 背景图的绘图区域
- src 要绘制的图
- sp src 对应的绘图开始点
- op 组合方式
以下代码是将一个 Gopher 的图案绘制到了一张黑色背景空白图的左上角。
DrawMask
DrawMaskmaskmp
DrawDrawMaskDrawMaskmaskDraw
DrawMask
下面是给图片加一个圆形遮罩的示例:
给图片加一个圆角遮罩的示例:
在图案进行圆形、圆角绘制的过程中,因为最小单位是1px,所以可能会有锯齿边缘的问题,解决这个问题可以通过先将原图放大,遮罩后再缩小来解决。