GIMP 插件可自动更改票号并导出图像

GIMP 插件可自动更改票号并导出图像

我设计了一张包含连续票号(001,002,003...500)的票,现在我必须将每个票号导出为单独的 PNG 图像。

这需要大量的手动工作,我想问是否有插件或脚本可以用来自动完成此操作 - 我可以让文本层逐步更改,然后导出图像。

编辑

这是我的票。
票号在左侧角落 - 2014/001 -> 2014/500
图像大小:2858px x 1000px
票号字体为尘埃2:灵魂追踪者

在此处输入图片描述

答案1

我认为我让它工作了。

在此处输入图片描述

程序是,你把背景图片(名为“background.png”,没有票号,但 2014/) 放在一个文件夹中,并附上下面的脚本。然后,如果您运行该脚本(在编辑 head 部分的三行之后):

  • 该脚本会生成从001到的数字500(但可以是您在 head 部分定义的任何数字)随后,使用imagemagick

  • 脚本会按数字逐个创建单独的图层(文件),并将数字放在正确的位置

  • 它将背景层 + 数字层复制到新文件中,并为每个数字保存在同一个文件夹中。
  • 然后脚本会删除(临时的)附加层

在此处输入图片描述

笔记

  • 您可能需要安装imagemagick

    sudo apt-get install imagemagick
    
  • 我用了这个免费版本字体。事实证明,在脚本中,我必须设置字体的绝对路径才能使其工作。我只是将其复制到~/.fonts并使用了该路径。在脚本的头部部分,设置你的。

剧本:

#!/usr/bin/env python3

import subprocess
import os

curr_path = os.path.dirname(os.path.abspath(__file__))

#---
number_of_tickets = 5
bg_file = curr_path+"/"+"background.png"
font = '/home/jacob/.fonts/dirt2 soulstalker.otf'
#---

def command(string, layer, position):
    return "convert -size 2858x1000 xc:None -fill black -font "+'"'+font+'"'+\
           " -stroke None -fill white -pointsize 123 -style Normal -gravity west -draw "+\
           position+"'"+string+"'"+'" '+layer

def print_tofile(string, number):
    print("creating file "+number+"."*3)
    layer_1 = curr_path+"/"+number+"_a.png"
    layer_2 = curr_path+"/"+number+"_b.png"
    cmd_1 = command(string, layer_1, '"text 497,-420 ')
    cmd_2 = command(string, layer_2, '"text 1035,-420 ')
    subprocess.call(["/bin/bash", "-c", cmd_1])
    subprocess.call(["/bin/bash", "-c", cmd_2])
    cmd_3 = "convert "+bg_file+" "+layer_1+" "+layer_2+\
            " -background None -layers merge "+curr_path+"/"+number+"_ticket.png"
    subprocess.call(["/bin/bash", "-c", cmd_3])
    os.remove(layer_1)
    os.remove(layer_2)
    print("done")

ns = [str(n) for n in range(number_of_tickets+1)][1:]

for item in ns:
    number = str(int(3-len(item))*"0")+item
    string = number
    print_tofile(string, number)

如何使用

将其复制到一个空文件中,在脚本的头部部分设置:

  • 票数
  • 字体的(绝对)路径
  • 背景图片的名称(无号码的票)如果您想要更改它

并将其保存为numbering.py,与背景图像(2858px x 1000px)一起放在background.png同一个文件夹中。

通过命令运行:

python3 /path/to/script.py

相关内容