前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Python画一张全是日落的地图

利用Python画一张全是日落的地图

原创
作者头像
疯狂的KK
发布2023-06-21 15:47:38
7530
发布2023-06-21 15:47:38
举报
文章被收录于专栏:Java项目实战Java项目实战

环境准备

1.个人喜欢的日落/其他图片

2.python3.10

3.PIL库

4.轮廓可以换成任意

效果图

代码

代码语言:javascript
复制
from PIL import Image
import os


def combine_pic(folder):
    # 读取地图轮廓图
    img = Image.open("china.png")

    w,h = img.size
    #新建与主图一样大的白色底图
    new_img = Image.new('RGB',(w,h),'#FFFFFF')

    unit_size = 60

    #根据小格尺寸,计算大图可容纳小图数量
    y_index = h//unit_size
    x_index = w//unit_size

    pic_list = []
    for item in os.listdir(folder):
        #对文件夹中的 jpg 图片格式筛选
        if item.endswith(".jpg") or item.endswith(".jpeg") :
            pic_list.append(item)

    #获取素材图片数目
    total = len(pic_list)
    x=0
    y=0

    for i in range(x_index*y_index):
        #提醒进度的语句
        print(f"日落生成{i}/{x_index*y_index}")
        try:
            # 对素材图缩放至小格大小
            test = Image.open(f"{folder}/" + pic_list[i%total]).resize((unit_size,unit_size), Image.ANTIALIAS)
        except IOError:
            print("有1位朋友的头像读取失败,跳过该头像")  # 有些人没设置头像,就会有异常
            continue

        #将缩放成小格的素材图按顺序贴到白色底图上
        new_img.paste(test,(x*unit_size,y*unit_size))
        x+=1
        if x==x_index:
            x=0
            y+=1

    print("日落生成完毕!")
    #将合成的素材图存至 out.jpg
    new_img.save("out.jpg",quality=100)

#如果不想每次都生成图,可以运行一次后注释掉这句,参数为文件夹名字
combine_pic("qianxi")

#读取合成后的素材图
src1 = Image.open("out.jpg")

#读取地图轮廓图
src2 = Image.open("china.png")

src1.paste(src2,(0,0),src2)

src1.save("result.png")
# print("地图轮廓添加完毕!")






本代码为github公开仓库拉取,原代码作者暂未找到,后续各位发现请及时与我联系

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
  • 效果图
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档