Ich verwende derzeit HTML5 Canvas, um eine Reihe von Zeichenfolgen mit der FillText-Methode zu rendern. Dies funktioniert gut, aber ich möchte auch jede Saite einen 1px schwarzen äußeren Schlag geben. Leider scheint die strokeText-Funktion einen inneren Strich anzuwenden. Um dem entgegenzuwirken, habe ich eine drawStrokedText-Funktion geschrieben, die den gewünschten Effekt erzielt. Leider ist es schrecklich langsam (aus offensichtlichen Gründen).Zeichnen von Text mit einem äußeren Strich mit HTML5-Canvas
Gibt es eine schnelle, browserübergreifende Möglichkeit, einen 1px-Außenschlag mit nativer Canvas-Funktionalität zu erzielen?
drawStrokedText = function(context, text, x, y)
{
context.fillStyle = "rgb(0,0,0)";
context.fillText(text, x-1, y-1);
context.fillText(text, x+1, y-1);
context.fillText(text, x-1, y);
context.fillText(text, x+1, y);
context.fillText(text, x-1, y+1);
context.fillText(text, x+1, y+1);
context.fillStyle = "rgb(255,255,255)";
context.fillText(text, x, y);
};
Hier ist ein Beispiel für die Wirkung bei der Arbeit:
Wie wäre es, den Text mit 'strokeText' Rendering, aber mit einem etwas größeren Schrift für den inneren Takt zu berücksichtigen? Auch bei dieser 'drawStrokedText' Methode könnten Sie wahrscheinlich die horizontalen/vertikalen Verschiebungen überspringen. (Du scheinst bereits vertikal zu verpasst zu haben) – Cerbrus