[PYTHON] Generieren Sie gemeinsam Bildtext

In letzter Zeit hat sich die Unterstützung von CSS-Browsern verbessert, und selbst einfacher Text hat eine ausreichende Ausdruckskraft. Ich denke, es ist besser, keinen Text in Webinhalten abzubilden.

Je nach Projekt kann es jedoch unvermeidlich sein, dass Sie alle in der Datenbank verwalteten Textinformationen in Bilder umwandeln möchten.

Sie können mit Adobe-Produkten einzeln damit umgehen. Ich habe ein Befehlszeilen-Tool erstellt, weil es mich schnell überfordert und ich das Gefühl habe, dass ich den Verstand verlieren werde, wenn später Farb- oder Größenänderungen auftreten.

https://github.com/koji0330/imageTextGenerator

Ich rufe einfach den ImageMagick-Befehl auf, indem ich die Schriftgröße und die Schriftart in der JSON-Datei spezifiziere, aber ImageMagick ist sehr praktisch. Ich benutze Python, um die JSON-Datei zu lesen und Befehle auszuführen, aber da es ein einfacher Prozess ist, denke ich, dass jede Sprache verwendet werden kann.

{
    "sets": [
        {
            "font": "/Library/Fonts/Hiragino Mincho Pro W6.otf",
            "size": "23",
            "color": "#000",
            "convert": [
                {
                    "label": "Titelbild 1",
                    "imgpath": "img/txt_title1.png "
                }, {
                    "label": "Titelbild 2",
                    "imgpath": "img/txt_title2.png "
                }
            ]
        }, {
            "size": "29",
            "font": "/Library/Fonts/Hiragino Kakugo Pro W6.otf",
            "color": "#EA5304",
            "convert": [
                {
                    "label": "0123456789",
                    "imgpath": "img/num_0123456789.png "
                }, {
                    "label": "9876543210",
                    "imgpath": "img/num_9876543210.png ",
                    "color": "#f33"
                }
            ]
        }
    ]
}
#!/usr/bin/python
# -*- encoding: utf-8 -*-

import json, argparse, commands

parser = argparse.ArgumentParser(
	description='Generate image text from json file.'
)
parser.add_argument(
	'conf_file',
	nargs='?',
	default='config.json',
	help='config file'
)

args = parser.parse_args()

# Load config file
f = open(args.conf_file, "rU")
loaded = json.load(f)
f.close()

for set in loaded['sets']:
	font = set.get('font', '');
	size = set.get('size', '30');
	label = set.get('label', 'undefined');
	background = set.get('background', 'None');
	color = set.get('color', '#000');
	imgpath = set.get('imgpath', 'undefined.png');
	for convert in set['convert']:
		font = convert.get('font', font);
		size = convert.get('size', size);
		label = convert.get('label', label);
		background = convert.get('background', background);
		color = convert.get('color', color);
		imgpath = convert.get('imgpath', imgpath);
		conv_cmd = u'convert -background %s -fill "%s" -font "%s" -pointsize %s label:"%s" %s' % (background, color, font, size, label, imgpath)
		print conv_cmd
		out = commands.getoutput(conv_cmd.encode('utf_8'))
		print out
print

Wenn für das Imaging zu viele Anforderungen gestellt werden, kann möglicherweise eine Imaging-API auf demselben Server erstellt werden.

Recommended Posts

Generieren Sie gemeinsam Bildtext
Generieren Sie aus Textdaten ein vertikales Bild eines Romans
Generieren Sie ein Docker-Image mit Fabric
Collage automatisch aus Bildliste generieren
Fügen Sie dem Bild Linien und Text hinzu
Versuchen Sie, ein Bild mit Entfremdung zu erzeugen