Spec-Zone.ru › Web APIs

CanvasRenderingContext2D: свойство textRendering

Свойство CanvasRenderingContext2D.textRendering API Canvas предоставляет рендеринговой системе информацию о том, на что следует делать упор при отрисовке текста.

Значения соответствуют атрибуту SVG text-rendering (и свойству CSS text-rendering).

Значение

Подсказка для движка браузера относительно рендеринга текста. Возможные значения:

auto

Браузер делает обоснованные предположения о том, когда следует оптимизировать скорость, удобочитаемость и геометрическую точность при отрисовке текста.

optimizeSpeed

Браузер отдаёт приоритет скорости рендеринга перед удобочитаемостью и геометрической точностью при отрисовке текста. Отключаются кернинг и лигатуры.

optimizeLegibility

Браузер отдаёт приоритет удобочитаемости перед скоростью рендеринга и геометрической точностью. Включаются кернинг и (по возможности) лигатуры.

geometricPrecision

Браузер отдаёт приоритет геометрической точности перед скоростью рендеринга и удобочитаемостью. Некоторые аспекты шрифтов, такие как кернинг, не масштабируются линейно. При больших масштабах рендеринг текста может быть менее красивым, но размер будет соответствовать ожидаемому (ни округляться вверх, ни вниз до ближайшего поддерживаемого операционной системой размера шрифта).

Свойство может использоваться для получения или установки значения.

Примеры

В этом примере отображается текст "Hello World" с использованием каждого из поддерживаемых значений свойства textRendering. Значение также отображается для каждого случая путём чтения свойства.

HTML

<canvas id="canvas" width="700" height="220"></canvas>

JavaScript

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.font = "20px serif";

// Default (auto)
ctx.fillText(`Hello world (default: ${ctx.textRendering})`, 5, 20);

// Text rendering: optimizeSpeed
ctx.textRendering = "optimizeSpeed";
ctx.fillText(`Hello world (${ctx.textRendering})`, 5, 50);

// Text rendering: optimizeLegibility
ctx.textRendering = "optimizeLegibility";
ctx.fillText(`Hello world (${ctx.textRendering})`, 5, 80);

// Text rendering: geometricPrecision
ctx.textRendering = "geometricPrecision";
ctx.fillText(`Hello world (${ctx.textRendering})`, 5, 110);

Результат

Спецификации

Спецификация
HTML
# dom-context-2d-textrendering

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
textRendering 99 99 116 85 Нет 99 116 68 Нет 18.0 99

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/textRendering

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API