Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Узнать длину строки по заданному шрифту

#javascript #canvas #шрифты


Можно с помощью JS через canvas или другим способом узнать длину строки по заданному
шрифту и его величине в миллиметрах? Через метод measureText() можно получить длину
в пикселях. 
    


Ответы

Ответ 1



Через метод measureText() получаете значение длины в пикселях, а дальше умножаете на 0.2645833333333, таков стандартный размер пикселя в миллиметрах. В случае ретина дисплеев делите на 2. Какова задача таково и решение. Нафига вам миллиметры не понятно. Может вы мониторы производите - откуда я знаю то.

Ответ 2



function Text(phrase, fontsize) { let ml = 0.2645833333333; return phrase.split('').length*fontsize*ml; }; В функцию передаем саму фразу и размер шрифта. Получаем количество букв с помощью phrase.split('').length, умножаем на fontsize и получаем количество пикселей, занимаемое фразой. Умножаем на 0.2645833333333 (размер 1 пкс в мм)

Ответ 3



Как-то сталкивался с подобной задачей. Подсчет количества букв - сразу не подошел. Например i и w имеют разную ширину. Отличный вариант - пихать текст в инлайновый элемент и смотреть на его ширину в пикселях, а потом можно умноджить на размер пиксля: var _result = document.getElementById('result'); var _test = document.getElementById('test'); function count(){ var text = document.getElementById("input").value; _test.innerHTML = text; _result.innerHTML = _test.offsetWidth; } #test{ display: inline; position:absolute; opacity:0; }
Длина фразы: пикселей


Ответ 4



"Стандартного размера пикселя" не существует! Все зависит от разрешающих возможностей устройства вывода. Загляните в вики, прочтите про DPI. Далее формула пересчета станет очевидной: знаем DPI (сколько пикселей устройство вывода укладывает в дюйм) знаем сколько пикселей приходится на строку осталось перевести дюймы в миллиметры

Комментариев нет:

Отправить комментарий