Какая буква английского алфавита занимает больше всего пикселей?
181
Я пытаюсь сделать динамическое программирование на основе количества символов в предложении. Какая буква английского алфавита занимает больше всего пикселей на экране?
больше всего пикселей? Широчайший? Tallest? Какой шрифт? Можете ли вы указать?
Грегор Брандт
6
Разве это не зависит от используемого шрифта?
Роберто Алои
Какой шрифт? Строчные, верхние?
Ракета Ронни
6
Это действительно зависит от шрифта, так как вы запрашиваете тот, который "занимает больше пикселей".
Гурзо
6
Мудрость традиционного набора текста - M или W для прописных букв и m для строчных. Зависит от шрифта, но в большинстве случаев это работает приемлемо.
tripleee
Ответы:
726
Хм, посмотрим:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccc
dddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ffffffffffffffffffffffffffffffffffffffff
gggggggggggggggggggggggggggggggggggggggg
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
llllllllllllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
oooooooooooooooooooooooooooooooooooooooo
pppppppppppppppppppppppppppppppppppppppp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ssssssssssssssssssssssssssssssssssssssss
tttttttttttttttttttttttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
W побеждает.
Конечно, это глупый эмпирический эксперимент. Нет единого ответа, какое письмо является самым широким. Это зависит от шрифта. Таким образом, вам придется провести аналогичный эмпирический эксперимент, чтобы выяснить ответ для вашей среды. Но дело в том, что большинство шрифтов придерживаются одних и тех же соглашений, и заглавная буква W будет самой широкой.
Суть этих значений ширины символов в форме отношения (W = 100), полученной здесь, с использованием этого конкретного примера шрифта:
Интересно, что в «Arial Black» на моем MacBook в Chrome строчная буква m является самой широкой с небольшим отрывом.
Эрл Дженкинс
15
Как насчет этого ........................................ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% .......................... ......................................... так что я думаю, что @ выигрывает !!
Джон Хенкель
19
Так что W на самом деле не перевернутая буква M. Я ошибался все эти годы!
Улисс Алвес
3
Upvote просто из-за удивительности этого ответа!
Tanckom
122
В дополнение к удивительно практическому ответу Неда Батчелдера, потому что я пришел сюда, задаваясь вопросом о цифрах:
Я сомневался в этой информации, думая, что «1», безусловно, будет более узким, чем другие цифры. Но в шрифтах, которые я проверил, все цифры имеют одинаковую ширину. Я полагаю, это выбор дизайна шрифта.
jfritz42
6
По крайней мере для меня (просматривая этот пост в Firefox в Ubuntu), 1 является более узким, чем другие, а другие имеют одинаковую ширину.
МестреЛион
@MestreLion: Какой шрифт вы используете? Лицо, размер и любые модификаторы, такие как жирность или курсив.
Эрл Дженкинс
2
@ LukeTaylor - Почему это так! font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;font-size: 15px; О, это яблоко, всегда старающееся быть немного другим ...
Эрл Дженкинс
1
Это на самом деле зависит от font-variant-numeric: пропорциональные цифры допускают различную ширину, как в глифе, так и в интервале, в то время как табличные цифры должны следовать правилам, аналогичным моноширинным шрифтам.
Мэтью Уиллкоксон
21
Как насчет программного решения?
var capsIndex =65;var smallIndex =97var div = document.createElement('div');
div.style.float='left';
document.body.appendChild(div);var highestWidth =0;var elem;for(var i = capsIndex; i < capsIndex +26; i++){
div.innerText =String.fromCharCode(i);var computedWidth = window.getComputedStyle(div,null).getPropertyValue("width");if(highestWidth < parseFloat(computedWidth)){
highestWidth = parseFloat(computedWidth);
elem =String.fromCharCode(i);}}for(var i = smallIndex; i < smallIndex +26; i++){
div.innerText =String.fromCharCode(i);var computedWidth = window.getComputedStyle(div,null).getPropertyValue("width");if(highestWidth < parseFloat(computedWidth)){
highestWidth = parseFloat(computedWidth);
elem =String.fromCharCode(i);}}
div.innerHTML ='<b>'+ elem +'</b>'+' won';
И «М», и «W» имеют одинаковое количество пикселей. Так как большинство ответов говорят "W", лучше показать, что M и W одинаковы и выиграли. Кстати очень хороший ответ.
В зависимости от вашей платформы, может быть способ «getWidth» из строки или функции DrawText () с помощью свойства width.
Я бы сделал простой алгоритм, который использовал необходимый шрифт, а затем пробежал по алфавиту и сохранил его в небольшой конфигурации или просто рассчитал его при инициализации, поскольку цикл от А до Я не так уж сложен.
Это также зависит от шрифта. Я сделал это 1 или 2 года назад с Processing и Helvetica, и это ILJTYFVCPAXUZKHSEDORGNBQMW в порядке увеличения пикселей. Идея состоит в том, чтобы нарисовать текст на холсте шрифтом, который вы просматриваете, посчитать пиксели, а затем отсортировать с помощью HashMap или Dictionary.
Конечно, это может не иметь непосредственного отношения к вашему использованию, так как при этом вычисляется площадь пикселя, а не только ширина. Может быть, немного излишним.
Алекс Майкл разместил в своем блоге решение для вычисления ширины шрифтов, аналогичное решению, опубликованному xxx (которое, как ни странно, связало меня здесь).
Резюме:
Для Helvetica верхние три буквы: M (2493 пикселей), W (2414) и B (1909).
Для набора шрифтов, поставляемых с его Mac, результаты более или менее одинаковы: M (2217,51 ± 945,19), W (2139,06 ± 945,29) и B (1841,38 ± 685,26).
Это будет зависеть от шрифта. Я хотел бы создать небольшую программу на языке программирования, который вам наиболее удобен, где вы рисуете каждую букву алфавита в растровом изображении размера m. Инициализируйте каждый пиксель белым. Затем посчитайте количество белых пикселей после того, как вы нарисовали каждую букву, и сохраните это число. Самое большое число, которое вы найдете, это то, что вы ищете.
РЕДАКТИРОВАТЬ: Если вы на самом деле просто заинтересованы в том, какой из них занимает самый большой прямоугольник (но похоже, что вы действительно после этого, а не пикселей), вы можете использовать различные вызовы API, чтобы найти размер, но это зависит от ваш язык программирования. Например, в Java вы должны использовать класс FontMetrics.
Я знаю, что принятый ответ здесь - W, W - для WIN.
Однако в этом случае W также для ширины. В данном примере использовался простой тест ширины для проверки пикселей, но это была только ширина, а не общее количество пикселей. В качестве простого встречного примера принятый ответ предполагает, что O и Q занимают одинаковое количество пикселей, но занимают одинаковое количество места.
Таким образом, W занимает больше всего места . Но разве это все пиксели, на которые он треснул?
Давайте получим некоторые эмпирические данные. Я создал imgur изображения из следующих B, M и W. Затем я проанализировал их количество пикселей (см. Ниже), вот результаты:
B: 114 пикселей
М: 150 пикселей
W: 157 пикселей
Вот как я подал их на холст и проанализировал необработанные данные пикселей из изображений.
var imgs ={
B :"//i.imgur.com/YOuEPOn.png",
M :"//i.imgur.com/Aev3ZKQ.png",
W :"//i.imgur.com/xSUwE7w.png"};
window.onload =function(){for(var key in imgs){(function(img,key){varOut= document.querySelector("#"+key+"Out");
img.crossOrigin ="Anonymous";
img.src=imgs[key];
img.onload =function(){var canvas = document.querySelector('#'+key);(canvas.width = img.width,canvas.height = img.height);var context = canvas.getContext('2d');
context.drawImage(img,0,0);var data = context.getImageData(0,0, img.width, img.height).data;Out.innerHTML ="Total Pixels: "+ data.length/4+"<br>";var pixelObject ={};for(var i =0; i < data.length; i +=4){var rgba ="rgba("+data[i]+","+data[i+1]+","+data[i+2]+","+data[i+3]+")";
pixelObject[rgba]= pixelObject[rgba]? pixelObject[rgba]+1:1;}Out.innerHTML +="Total Whitespace: "+ pixelObject["rgba(255,255,255,255)"]+"<br>";Out.innerHTML +="Total Pixels In "+ key +": "+((data.length/4)-pixelObject["rgba(255,255,255,255)"])+"<br>";};})(newImage(),key)}};
Хотите узнать настоящий самый длинный глиф, а не просто гадать?
И я говорю не только о буквах, цифрах и общих символах (!, @ И т. Д.). Я имею в виду самый длинный глиф из всех 32 834 символов UTF-16.
Итак, я начал с ответа @NK, в котором было программное решение, и внес в него небольшие изменения:
var capsIndex =65;var smallIndex =97;var div = document.createElement('div');
div.style.float='left';
document.body.appendChild(div);var highestWidth =0;var elem;for(var i = capsIndex; i <32834; i++){
div.innerText =String.fromCharCode(i);var computedWidth = window.getComputedStyle(div,null).getPropertyValue("width");if(highestWidth < parseFloat(computedWidth)){
highestWidth = parseFloat(computedWidth);
elem =String.fromCharCode(i);}}
div.innerHTML ='<b>'+ elem +'</b>'+' won';
После запуска этого и ожидания (и ожидания), он выдает результат ௌ won.
И вот он, самый длинный персонаж в UTF-32! Обратите внимание, что на некоторых шрифтах самый длинный глиф - это ﷽, но другие шрифты (особенно моноширинные) перекрывают символы, как со шрифтом, который программа учитывает в программе.
Ответы:
Хм, посмотрим:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccc
dddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ffffffffffffffffffffffffffffffffffffffff
gggggggggggggggggggggggggggggggggggggggg
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
llllllllllllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
oooooooooooooooooooooooooooooooooooooooo
pppppppppppppppppppppppppppppppppppppppp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ssssssssssssssssssssssssssssssssssssssss
tttttttttttttttttttttttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
W побеждает.
Конечно, это глупый эмпирический эксперимент. Нет единого ответа, какое письмо является самым широким. Это зависит от шрифта. Таким образом, вам придется провести аналогичный эмпирический эксперимент, чтобы выяснить ответ для вашей среды. Но дело в том, что большинство шрифтов придерживаются одних и тех же соглашений, и заглавная буква W будет самой широкой.
Суть этих значений ширины символов в форме отношения (W = 100), полученной здесь, с использованием этого конкретного примера шрифта:
https://gist.github.com/imaurer/d330e68e70180c985b380f25e195b90c
источник
В дополнение к удивительно практическому ответу Неда Батчелдера, потому что я пришел сюда, задаваясь вопросом о цифрах:
0000000000000000000000000000000000000000
1111111111111111111111111111111111111111
2222222222222222222222222222222222222222
3333333333333333333333333333333333333333
4444444444444444444444444444444444444444
5555555555555555555555555555555555555555
6666666666666666666666666666666666666666
7777777777777777777777777777777777777777
8888888888888888888888888888888888888888
9999999999999999999999999999999999999999
источник
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
font-size: 15px;
О, это яблоко, всегда старающееся быть немного другим ...font-variant-numeric
: пропорциональные цифры допускают различную ширину, как в глифе, так и в интервале, в то время как табличные цифры должны следовать правилам, аналогичным моноширинным шрифтам.Как насчет программного решения?
источник
Столица "М" условно самая широкая.
источник
Я считаю, что письмо
W
самое широкое.источник
В зависимости от вашей платформы, может быть способ «getWidth» из строки или функции DrawText () с помощью свойства width.
Я бы сделал простой алгоритм, который использовал необходимый шрифт, а затем пробежал по алфавиту и сохранил его в небольшой конфигурации или просто рассчитал его при инициализации, поскольку цикл от А до Я не так уж сложен.
источник
Это также зависит от шрифта. Я сделал это 1 или 2 года назад с Processing и Helvetica, и это ILJTYFVCPAXUZKHSEDORGNBQMW в порядке увеличения пикселей. Идея состоит в том, чтобы нарисовать текст на холсте шрифтом, который вы просматриваете, посчитать пиксели, а затем отсортировать с помощью HashMap или Dictionary.
Конечно, это может не иметь непосредственного отношения к вашему использованию, так как при этом вычисляется площадь пикселя, а не только ширина. Может быть, немного излишним.
источник
Arial 30px в Chrome - W выигрывает .
источник
Алекс Майкл разместил в своем блоге решение для вычисления ширины шрифтов, аналогичное решению, опубликованному xxx (которое, как ни странно, связало меня здесь).
Резюме:
Исходное сообщение: http://alexmic.net/letter-pixel-count/
Код:
источник
Это будет зависеть от шрифта. Я хотел бы создать небольшую программу на языке программирования, который вам наиболее удобен, где вы рисуете каждую букву алфавита в растровом изображении размера m. Инициализируйте каждый пиксель белым. Затем посчитайте количество белых пикселей после того, как вы нарисовали каждую букву, и сохраните это число. Самое большое число, которое вы найдете, это то, что вы ищете.
РЕДАКТИРОВАТЬ: Если вы на самом деле просто заинтересованы в том, какой из них занимает самый большой прямоугольник (но похоже, что вы действительно после этого, а не пикселей), вы можете использовать различные вызовы API, чтобы найти размер, но это зависит от ваш язык программирования. Например, в Java вы должны использовать класс FontMetrics.
источник
Я знаю, что принятый ответ здесь - W, W - для WIN.
Однако в этом случае W также для ширины. В данном примере использовался простой тест ширины для проверки пикселей, но это была только ширина, а не общее количество пикселей. В качестве простого встречного примера принятый ответ предполагает, что O и Q занимают одинаковое количество пикселей, но занимают одинаковое количество места.
Таким образом, W занимает больше всего места . Но разве это все пиксели, на которые он треснул?
Давайте получим некоторые эмпирические данные. Я создал imgur изображения из следующих B, M и W. Затем я проанализировал их количество пикселей (см. Ниже), вот результаты:
B: 114 пикселей
М: 150 пикселей
W: 157 пикселей
Вот как я подал их на холст и проанализировал необработанные данные пикселей из изображений.
источник
Хотите узнать настоящий самый длинный глиф, а не просто гадать?
И я говорю не только о буквах, цифрах и общих символах (!, @ И т. Д.). Я имею в виду самый длинный глиф из всех 32 834 символов UTF-16.
Итак, я начал с ответа @NK, в котором было программное решение, и внес в него небольшие изменения:
После запуска этого и ожидания (и ожидания), он выдает результат
ௌ won
.И вот он, самый длинный персонаж в UTF-32! Обратите внимание, что на некоторых шрифтах самый длинный глиф - это ﷽, но другие шрифты (особенно моноширинные) перекрывают символы, как со шрифтом, который программа учитывает в программе.
источник
Это зависит от шрифта. Например, пересеченный ноль занимает значительно больше, чем обычный.
Но если бы можно было предположить, я бы пошел с X или B.
источник