#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 (сколько пикселей устройство вывода укладывает в дюйм) знаем сколько пикселей приходится на строку осталось перевести дюймы в миллиметры
Комментариев нет:
Отправить комментарий