猫史档案馆


【Python作品分享】ImgNumberScreen【作品秀】

用户:氯化氢不是氯代烃氯化氢不是氯代烃查看:0 回复:2 评论:0 创建时间:2021-01-10T10:40:00


【作品展示】

center_image

 

【作品介绍】

它可以用图片排成数字,最多4位,可调整颜色。

 

【作品源代码】

from PIL import Image
import matplotlib.pyplot as plt
import os
import random

def ShowNumber(Prompt, NumberColor="yellow", BackgroundColor="black"):
    Reds = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Reds")
    Oranges = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Oranges")
    Yellows = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Yellows")
    Greens = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Greens")
    Blues = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Blues")
    Blacks = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Blacks")
    Greys = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Greys")
    Whites = os.listdir(r"F:\mouse\鼠鼠的视频与照片\Imgs\Whites")
    global Colors
    Colors = [Reds, Oranges, Yellows, Greens, Blues, Blacks, Greys, Whites]
    ImgExts = [".jpg", ".jpeg", ".png"]
    for colorlist in Colors:
        for file in colorlist:
            Name, Ext = os.path.splitext(file)
            if not Ext in ImgExts:
                colorlist.remove(file)
    Digits = {"1": ["00100", "01100", "00100", "00100", "00100", "00100", "00100", "00100", "00100", "01110"],
              "2": ["01110", "10001", "10001", "00001", "00010", "00010", "00100", "01000", "10000", "11111"],
              "3": ["01110", "10001", "00001", "00001", "01110", "00001", "00001", "10001", "10001", "01110"],
              "4": ["10100", "10100", "10100", "10100", "11111", "00100", "00100", "00100", "00100", "00100"],
              "5": ["11111", "10000", "10000", "10000", "11110", "10001", "00001", "00001", "10001", "01110"],
              "6": ["00011", "00110", "01100", "01000", "11000", "11110", "10001", "10001", "10001", "01110"],
              "7": ["11111", "00001", "00010", "00010", "00100", "00100", "01000", "01000", "10000", "10000"],
              "8": ["01110", "10001", "10001", "10001", "01110", "10001", "10001", "10001", "10001", "01110"],
              "9": ["01110", "10001", "10001", "10001", "01111", "00011", "00010", "00100", "01000", "10000"],
              "0": ["01110", "10001", "10001", "10001", "10001", "10001", "10001", "10001", "10001", "01110"],
              "_": ["00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000"]}
    ColorPaths = {"red": r"F:\mouse\鼠鼠的视频与照片\Imgs\Reds",
                  "oranges": r"F:\mouse\鼠鼠的视频与照片\Imgs\Oranges",
                  "yellow": r"F:\mouse\鼠鼠的视频与照片\Imgs\Yellows",
                  "green": r"F:\mouse\鼠鼠的视频与照片\Imgs\Greens",
                  "blue": r"F:\mouse\鼠鼠的视频与照片\Imgs\Blues",
                  "black": r"F:\mouse\鼠鼠的视频与照片\Imgs\Blacks",
                  "gray": r"F:\mouse\鼠鼠的视频与照片\Imgs\Greys",
                  "white": r"F:\mouse\鼠鼠的视频与照片\Imgs\Whites"}
    ColorNames = {"red": Reds,
                  "oranges": Oranges,
                  "yellow": Yellows,
                  "green": Greens,
                  "blue": Blues,
                  "black": Blacks,
                  "gray": Greys,
                  "white": Whites}
    Board = Image.new("RGBA", (1000, 500))
    if len(Prompt) > 4:
        raise
    while len(Prompt) < 4:
        Prompt = "_"+Prompt
    ShowList = [""] * 10
    for a in range(4):
        for b in range(10):
            ShowList[b] += Digits[Prompt[a]][b]
    print(ShowList)
    for a in range(10):
        for b in range(20):
            Pos = (b*50, a*50)
            NumImg = Image.open(
                ColorPaths[NumberColor]+os.sep+random.choice(ColorNames[NumberColor])).resize((50, 50))
            BackImg = Image.open(
                ColorPaths[BackgroundColor]+os.sep+random.choice(ColorNames[BackgroundColor])).resize((50,50))
            if ShowList[a][b] == "0":
                Board.paste(BackImg, Pos)
            elif ShowList[a][b] == "1":
                Board.paste(NumImg, Pos)
            else:
                pass
    plt.imshow(Board)
    plt.show()


ShowNumber("1254", "red", "white")

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
编程弃子编程弃子

可以,mlp用的不错哦,加个nmp试试

点赞0


评论


禁止挖坟后果自负禁止挖坟后果自负

不错不错,但是这就是比较复杂的照片墙center_image

点赞0


评论