技巧 | Python制作朋友圈炫酷九宫格图片

科技   科技   2024-12-18 08:10   天津  


点击上方"蓝字",关注"Python当打之年"
后台回复"1",领取众多Python学习资料
大家好,我是欧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)

参数:

  • 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)


4 源码

👉 公众号后台回复【可视化项目源码】获取更多可视化代码+数据
END

以上就是本期为大家整理的全部内容了,喜欢的朋友可以点赞、点在看也可以分享让更多人知道。

 往期推荐 

源码下载 | 【01-50】Pthon可视化系列文章资源(源码+数据)

爬虫 | Python爬取某平台杭州二手房数据

爬虫 | Python搞定软科中国大学排名

爬虫 | Python爬取胡润百富榜数据

爬虫 | Python爬取微博实时热搜榜信息

爬虫 | Python爬取B站榜排行榜信息

可视化 | Flask+Mysql+Echarts 豆瓣电影Top250数据分析系统

55 | 实习僧网Python岗位招聘数据分析可视化

54 | 2024年美国总统大选数据分析可视化

53 | 基于Lasso回归和随机森林的上海链家二手房房价预测

53 | 上海链家二手房数据分析可视化

52 | 基于KNN近邻和随机森林模型对用户转化进行分析与预测

51 | 深圳市共享单车数据分析可视化

01-50 | Pthon可视化系列文章资源(源码+数据)

Pandas+Pyecharts | 全国热门旅游景点数据分析可视化

可视化 | 再分享一套Flask+Pyecharts可视化模板二

可视化 | 分享一套Flask+Pyecharts可视化模板

可视化 | Python直观展示中国代表团冬奥会荣耀时刻

用Python分析了3W+《独行月球》影评数据,看看观众们怎么说~

Matplotlib | 世界足球俱乐部排名可视化

40000+条考研信息数据可视化(学校、专业分数分布)

【在看】的您又变好看了呢

Python当打之年
当打之年,专注于各领域Python技术,量的积累,质的飞跃。后台回复:【可视化项目源码】可获取可视化系列文章源码和数据
 最新文章