Aktualnie używam kanwy HTML5 do renderowania wielu ciągów znaków za pomocą metody fillText. Działa to dobrze, ale chciałbym również nadać każdemu ciągowi zewnętrzny zewnętrzny obrys o wielkości 1 piksela. Niestety funkcja strokeText wydaje się stosować obrys wewnętrzny. Aby temu przeciwdziałać, napisałem funkcję drawStrokedText, która pozwala osiągnąć pożądany efekt. Niestety jest okropnie wolno (z oczywistych powodów).Rysowanie tekstu za pomocą zewnętrznego obrysu przy użyciu obrazu HTML5
Czy istnieje szybki, oparty na przeglądarce tryb uzyskiwania zewnętrznego obrysu o 1 pikselu z wykorzystaniem rodzimej funkcjonalności płótna?
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);
};
Oto przykład efektu pracy:
Jak o renderowania tekstu z 'strokeText', ale z nieco większą czcionką w celu uwzględnienia wewnętrznej udaru mózgu? Również w tej metodzie 'drawStrokedText' można pominąć przesunięcia w poziomie/pionie. (Wygląda na to, że już brakuje ci pionu, w jakikolwiek sposób) – Cerbrus