Tôi hiện đang sử dụng canvas của HTML5 để hiển thị một số chuỗi bằng phương thức fillText. Điều này làm việc tốt, nhưng tôi cũng muốn cung cấp cho mỗi chuỗi một đột quỵ bên ngoài màu đen 1px. Thật không may, hàm strokeText dường như áp dụng một đột quỵ bên trong. Để chống lại điều này, tôi đã viết một hàm drawStrokedText để đạt được hiệu ứng mà tôi theo sau. Thật không may nó là khủng khiếp chậm (vì lý do rõ ràng).Vẽ văn bản bằng nét ngoài với canvas của HTML5
Có cách nào nhanh chóng, qua trình duyệt để đạt được đột quỵ bên ngoài 1px sử dụng chức năng canvas gốc không?
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);
};
Dưới đây là một ví dụ về tác dụng tại nơi làm việc:
Làm thế nào về render văn bản với 'strokeText', nhưng với một phông chữ lớn hơn một chút vào tài khoản cho đột quỵ bên trong? Ngoài ra, trên phương thức 'drawStrokedText' đó bạn có thể bỏ qua các thay đổi theo chiều ngang/dọc. (Bạn dường như bị thiếu theo chiều dọc, bất kỳ cách nào) – Cerbrus