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.