Quelle lettre de l'alphabet anglais occupe le plus de pixels?
181
J'essaye de faire une programmation dynamique basée sur le nombre de caractères dans une phrase. Quelle lettre de l'alphabet anglais occupe le plus de pixels à l'écran?
la plupart des pixels sur tout? Le plus large? Le plus grand? Quelle police? Pouvez-vous préciser?
Gregor Brandt
6
Cela ne dépend-il pas de la police utilisée?
Roberto Aloi
Quelle police? Minuscules, majuscules?
Rocket Ronnie
6
Cela dépend vraiment de la police puisque vous demandez celle qui "occupe le plus de pixels".
Gurzo
6
La sagesse traditionnelle de la composition est M ou W pour les majuscules et m pour les minuscules. Cela dépend de la police, mais cela fonctionne de manière acceptable dans la majorité des cas.
tripleee
Réponses:
726
Hmm, voyons:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccc
ddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ffffffffffffffffffffffffffffffffffffffff
gggggggggggggggggggggggggggggggggggggggg
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
llllllllllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
oooooooooooooooooooooooooooooooooooooooo
pppppppppppppppppppppppppppppppppppppppp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ssssssssssssssssssssssssssssssssssssssssss
tttttttttttttttttttttttttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
W gagne.
Bien sûr, c'est une expérience empirique idiote. Il n'y a pas de réponse unique à la lettre la plus large. Cela dépend de la police. Vous devrez donc faire une expérience empirique similaire pour trouver la réponse pour votre environnement. Mais le fait est que la plupart des polices suivent les mêmes conventions et que la majuscule W sera la plus large.
Gist avec ces largeurs de caractères sous une forme de rapport (W = 100) capturé ici en utilisant cet exemple de police particulier:
Fait intéressant, dans 'Arial Black' sur mon MacBook dans Chrome, m minuscule est le plus large, avec une petite marge.
Earl Jenkins
15
Que diriez-vous de cela ........................................ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% .......................... ......................................... donc je pense que le @ gagne !!
John Henckel
19
Donc W n'est en fait pas un M. à l'envers. Je me suis trompé toutes ces années!
Ulysses Alves le
3
Upvote simplement en raison de la génialité de cette réponse!
Tanckom
122
Suite à la réponse incroyablement pratique de Ned Batchelder, car je suis venu ici m'interroger sur les chiffres:
Je doutais de cette information, pensant qu'un «1» serait sûrement plus étroit que les autres chiffres. Mais dans les polices que j'ai vérifiées, tous les chiffres ont la même largeur. Je suppose que c'est un choix de conception de police.
jfritz42
6
Au moins pour moi (en regardant ce post dans Firefox dans Ubuntu), 1 est plus étroit que d'autres, et d'autres ont tous la même largeur.
MestreLion
@MestreLion: Quelle police utilisez-vous? Visage, taille et tous les modificateurs, tels que le gras ou l'italique.
Earl Jenkins
2
@LukeTaylor - Pourquoi il en est ainsi! font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;font-size: 15px; Oh, cet Apple, essayant toujours d'être un peu différent ...
Earl Jenkins
1
Cela dépend en fait de font-variant-numeric: les chiffres proportionnels permettent des largeurs différentes, à la fois dans le glyphe et l'espacement, tandis que les chiffres tabulaires doivent suivre des règles similaires à celles des polices à espacement fixe.
Matthew Willcockson le
21
Que diriez-vous d'une solution programmatique?
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';
«M» et «W» ont le même nombre de pixels. Puisque la plupart des réponses disent «W», il vaut mieux montrer que M et W sont identiques et gagnés. Au fait, très belle réponse.
Selon votre plate-forme, il peut y avoir un moyen de "getWidth" à partir d'une chaîne ou d'une fonction DrawText () avec une propriété width.
Je ferais un simple algortime qui utilisait la police nécessaire, puis parcourait l'alfabet et le stockait dans une petite configuration ou le calculais simplement à l'initialisation comme une boucle de A à Z n'est pas si difficile.
Cela dépend également de la police. J'ai fait cela il y a 1 ou 2 ans avec Processing et Helvetica et c'est ILJTYFVCPAXUZKHSEDORGNBQMW par ordre croissant de pixels. L'idée est de dessiner le texte sur une toile avec la police que vous regardez, de compter les pixels, puis de trier avec un HashMap ou un dictionnaire.
Bien sûr, cela peut ne pas être directement pertinent pour votre utilisation car cela calcule la zone de pixels plutôt que la largeur. Peut-être un peu exagéré aussi.
Une solution pour calculer les largeurs de polices un peu à la manière de la solution postée par xxx a été postée par Alex Michael sur son blog (qui m'a assez curieusement lié ici).
Résumé:
Pour Helvetica, les trois premières lettres sont: M (2493 pixels), W (2414) et B (1909).
Pour un jeu de polices livré avec son Mac, les résultats sont plus ou moins les mêmes: M (2217,51 ± 945,19), W (2139,06 ± 945,29) et B (1841,38 ± 685,26).
Cela dépendra de la police. Je créerais un petit programme dans un langage de programmation avec lequel vous êtes le plus à l'aise, où vous dessinez chaque lettre de l'alphabet dans une image bitmap de taille multipliée par m. Initialisez chaque pixel avec du blanc. Ensuite, comptez le nombre de pixels blancs après avoir dessiné chaque lettre et enregistrez ce nombre. Le nombre le plus élevé que vous trouvez est celui que vous recherchez.
EDIT: Si en fait vous êtes simplement intéressé par celui qui occupe le plus grand rectangle (mais il semble que vous êtes vraiment après cela, pas les pixels), vous pouvez utiliser divers appels d'API pour trouver la taille, mais cela dépend de votre langage de programmation. En Java, par exemple, vous utiliseriez la classe FontMetrics.
Je sais que la réponse acceptée ici est W, W est pour WIN.
Cependant, dans ce cas, W est également pour la largeur. L'étude de cas utilisée a utilisé un test de largeur simple pour examiner les pixels, mais il s'agissait uniquement de la largeur et non du nombre total de pixels. À titre d'exemple de compteur simple, la réponse acceptée suppose que O et Q occupent la même quantité de pixels, mais n'occupent que la même quantité d'espace.
Ainsi, W occupe le plus d' espace . Mais, est-ce tous les pixels pour lesquels il est craqué?
Obtenons quelques données empiriques. J'ai créé des images imgur à partir des B, M et W suivants.J'ai ensuite analysé leur nombre de pixels (voir ci-dessous), voici les résultats:
B: 114 pixels
M: 150 pixels
W: 157 pixels
Voici comment je les ai introduits dans la toile et analysé les données de pixels brutes des images.
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)}};
Vous voulez connaître le vrai plus long glyphe, pas seulement deviner?
Et je ne parle pas seulement des lettres, des chiffres et des symboles communs (!, @ Et ainsi de suite). Je veux dire le glyphe le plus long de tous les 32 834 caractères de UTF-16.
J'ai donc commencé avec une réponse de @NK qui avait une solution programmatique, et j'y ai apporté quelques légères modifications:
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';
Après avoir exécuté ceci et attendu (et attendu), il donne la sortie ௌ won.
Et voilà, le personnage le plus long de l'UTF-32! Notez que sur certaines polices, le glyphe le plus long est ﷽, mais les autres polices (en particulier celles à espacement fixe) chevauchent les caractères, comme avec la police que le programme prend en compte dans le programme.
Réponses:
Hmm, voyons:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccc
ddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ffffffffffffffffffffffffffffffffffffffff
gggggggggggggggggggggggggggggggggggggggg
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
llllllllllllllllllllllllllllllllllllll
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
oooooooooooooooooooooooooooooooooooooooo
pppppppppppppppppppppppppppppppppppppppp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ssssssssssssssssssssssssssssssssssssssssss
tttttttttttttttttttttttttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
W gagne.
Bien sûr, c'est une expérience empirique idiote. Il n'y a pas de réponse unique à la lettre la plus large. Cela dépend de la police. Vous devrez donc faire une expérience empirique similaire pour trouver la réponse pour votre environnement. Mais le fait est que la plupart des polices suivent les mêmes conventions et que la majuscule W sera la plus large.
Gist avec ces largeurs de caractères sous une forme de rapport (W = 100) capturé ici en utilisant cet exemple de police particulier:
https://gist.github.com/imaurer/d330e68e70180c985b380f25e195b90c
la source
Suite à la réponse incroyablement pratique de Ned Batchelder, car je suis venu ici m'interroger sur les chiffres:
0000000000000000000000000000000000000000
1111111111111111111111111111111111111111
22222222222222222222222222222222222222
3333333333333333333333333333333333333333
44444444444444444444444444444444444444
55555555555555555555555555555555555555
66666666666666666666666666666666666666
77777777777777777777777777777777777777
88888888888888888888888888888888888888
99999999999999999999999999999999999999
la source
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
font-size: 15px;
Oh, cet Apple, essayant toujours d'être un peu différent ...font-variant-numeric
: les chiffres proportionnels permettent des largeurs différentes, à la fois dans le glyphe et l'espacement, tandis que les chiffres tabulaires doivent suivre des règles similaires à celles des polices à espacement fixe.Que diriez-vous d'une solution programmatique?
la source
La capitale "M" est classiquement la plus large.
la source
Je pense que la lettre
W
est la plus large.la source
Selon votre plate-forme, il peut y avoir un moyen de "getWidth" à partir d'une chaîne ou d'une fonction DrawText () avec une propriété width.
Je ferais un simple algortime qui utilisait la police nécessaire, puis parcourait l'alfabet et le stockait dans une petite configuration ou le calculais simplement à l'initialisation comme une boucle de A à Z n'est pas si difficile.
la source
Cela dépend également de la police. J'ai fait cela il y a 1 ou 2 ans avec Processing et Helvetica et c'est ILJTYFVCPAXUZKHSEDORGNBQMW par ordre croissant de pixels. L'idée est de dessiner le texte sur une toile avec la police que vous regardez, de compter les pixels, puis de trier avec un HashMap ou un dictionnaire.
Bien sûr, cela peut ne pas être directement pertinent pour votre utilisation car cela calcule la zone de pixels plutôt que la largeur. Peut-être un peu exagéré aussi.
la source
Arial 30px dans Chrome - W gagne .
la source
Une solution pour calculer les largeurs de polices un peu à la manière de la solution postée par xxx a été postée par Alex Michael sur son blog (qui m'a assez curieusement lié ici).
Résumé:
Message original: http://alexmic.net/letter-pixel-count/
Code:
la source
Cela dépendra de la police. Je créerais un petit programme dans un langage de programmation avec lequel vous êtes le plus à l'aise, où vous dessinez chaque lettre de l'alphabet dans une image bitmap de taille multipliée par m. Initialisez chaque pixel avec du blanc. Ensuite, comptez le nombre de pixels blancs après avoir dessiné chaque lettre et enregistrez ce nombre. Le nombre le plus élevé que vous trouvez est celui que vous recherchez.
EDIT: Si en fait vous êtes simplement intéressé par celui qui occupe le plus grand rectangle (mais il semble que vous êtes vraiment après cela, pas les pixels), vous pouvez utiliser divers appels d'API pour trouver la taille, mais cela dépend de votre langage de programmation. En Java, par exemple, vous utiliseriez la classe FontMetrics.
la source
Je sais que la réponse acceptée ici est W, W est pour WIN.
Cependant, dans ce cas, W est également pour la largeur. L'étude de cas utilisée a utilisé un test de largeur simple pour examiner les pixels, mais il s'agissait uniquement de la largeur et non du nombre total de pixels. À titre d'exemple de compteur simple, la réponse acceptée suppose que O et Q occupent la même quantité de pixels, mais n'occupent que la même quantité d'espace.
Ainsi, W occupe le plus d' espace . Mais, est-ce tous les pixels pour lesquels il est craqué?
Obtenons quelques données empiriques. J'ai créé des images imgur à partir des B, M et W suivants.J'ai ensuite analysé leur nombre de pixels (voir ci-dessous), voici les résultats:
B: 114 pixels
M: 150 pixels
W: 157 pixels
Voici comment je les ai introduits dans la toile et analysé les données de pixels brutes des images.
la source
Vous voulez connaître le vrai plus long glyphe, pas seulement deviner?
Et je ne parle pas seulement des lettres, des chiffres et des symboles communs (!, @ Et ainsi de suite). Je veux dire le glyphe le plus long de tous les 32 834 caractères de UTF-16.
J'ai donc commencé avec une réponse de @NK qui avait une solution programmatique, et j'y ai apporté quelques légères modifications:
Après avoir exécuté ceci et attendu (et attendu), il donne la sortie
ௌ won
.Et voilà, le personnage le plus long de l'UTF-32! Notez que sur certaines polices, le glyphe le plus long est ﷽, mais les autres polices (en particulier celles à espacement fixe) chevauchent les caractères, comme avec la police que le programme prend en compte dans le programme.
la source
Cela dépend de la police. Le zéro croisé, par exemple, occupe beaucoup plus qu'un simple.
Mais si on pouvait faire une supposition, j'irais avec X ou B.
la source