Плагин GIMP для изменения номера билета и экспорта отображает автоматически

Я разработал билет, который включает последовательный номер билета (001,002,003... 500), и теперь я должен экспортировать каждый номер билета как отдельное изображение PNG.

Это - большой физический труд, и я спрашиваю, существует ли плагин или сценарий, который я могу использовать, чтобы сделать это автоматически - что-то, что я могу дать текстовому слою для изменения инкрементно затем экспорта изображение.

Править

Это - мой билет.
Номер билета в левом угле - 2014/001-> 2014/500
Размер изображения: 2858 пкс на 1000 пкс
Шрифт номера билета является Dirt2 SoulStalker

enter image description here

1
задан 22 November 2014 в 10:45

1 ответ

Я думаю, что получил его работа.

enter image description here

Процедура - то, что Вы помещаете фоновое изображение (названный "background.png", билетом без числа, но с 2014/) в папке, вместе со сценарием ниже. Затем если Вы запускаете скрипт (после того, как, редактируя эти три строки в главном разделе):

  • Сценарий производит числа из 001 кому: 500 (но это может быть любое число, которое Вы определяете в главном разделе), Впоследствии, с помощью imagemagick:

  • сценарий создает (число числом) отдельные слои (файлы) с числом в правильном положении

  • это копирует фоновый слой + слои числа в новый файл, сохраненный в той же папке, для каждого числа.
  • сценарий затем удаляет (временные) дополнительные слои

enter image description here

Примечания

  • Вам, вероятно, придется установить 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)

Как использовать

Скопируйте его в пустой файл, в разделе головы th сценария, установите:

  • количество билетов
  • (абсолютный) путь к шрифту
  • название фонового изображения (билет без чисел), если Вы хотите изменить его

и сохраните его как numbering.py, вместе с Вашим фоновым изображением (2858 пкс на 1000 пкс), названный background.png в одной и той же папке.

Выполните его командой:

python3 /path/to/script.py
1
ответ дан 11 November 2019 в 12:30

Другие вопросы по тегам:

Похожие вопросы: