大家好,我是欧K。
本期给大家分享如何使用python制作朋友圈九宫格图片,希望对你有所帮助。
1. 准备工作
1.1 Pillow 安装
两种安装方法:
# 方法1 pip install Pillow # 方法2 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ Pillow
1.2 导入模块
from PIL import Image
2. PIL函数
2.1 打开图像文件
Image.open(fp, mode='r')
它是惰性操作。该函数读取文件头,直到尝试处理数据才调用load方法强制加载实际的图像数据,可以使用字符串(表示文件名)或file对象作为文件参数。
2.2 打开图像文件
Image.new(mode, size, color=0)
Image.new(mode, size, color=0)
参数:
- mode:图片模式。
- size:一个二元组,包含(宽度,高度)像素。
- color:图像颜色,默认黑色。
2.3 复杂图像
Image.copy()
将原始图像内容粘贴到图像中,仍保留原始内容。
2.4 粘贴图像
Image.paste(im, box=None, mask=None)
box 可以是二元数组,给定 box 的左上角位置;或者,四元数组( left, upper, right, lower) 像素坐标;或者,None,等价于 ((0, 0))。
2.5 保存文件
Image.save(fp, format=None, **params)
fp 为文件名. 可以指定存储图片的质量(jpeg压缩率),不同的压缩率保存的文件大小不同.
img.save(fp, "JPEG", quality=95),quality 值越高,保存的文件越大。
3. 绘制九宫格图
3.1 创建底图
# 创建新图片 def create_new_image(image): width, height = image.size if width > height: new_image = Image.new(image.mode, (width, width), color='white') new_image.paste(image, (0, int((width - height) / 2))) else: new_image = Image.new(image.mode, (height, height), color='white') new_image.paste(image, (int((height - width) / 2), 0)) return new_image
3.2 生成子图
# 生成9个子图 def get_9_images(image): width, height = image.size new_image_width = int(width / 3) boxs = [] for i in range(0, 3): for j in range(0, 3): box = (j * new_image_width, i * new_image_width, (j + 1) * new_image_width, (i + 1) * new_image_width) boxs.append(box) images = [image.crop(box) for box in boxs] return images
3.3 保存
# 保存图片 def save_images(images, file_path): if not os.path.exists(file_path): os.mkdir(file_path) for index,image in enumerate(images): new_image = os.path.join(file_path, str(index) + '.jpg') image.save(new_image)
效果:完。
END
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享到朋友圈让更多人知道哦