Changer la taille de police de la Toile sans connaître famille de polices
Est-il un moyen de seulement changer la police la taille d'une toile contexte sans avoir à connaître d'écriture/de la famille de polices.
var ctx = document.getElementById("canvas").getContext("2d");
ctx.font = '20px Arial'; //Need to speficy both size and family...
Remarque:
ctx.fontSize = '12px'; //doesn't exist so won't work...
ctx.style.fontSize = '20 px' //doesn't exist so won't work...
//we are changing the ctx, not the canvas itself
Autre remarque: je peux faire quelque chose comme: détecter où " px "est, de supprimer ce qui est avant le" px " et de la remplacer par ma taille de police. Mais j'aimerais quelque chose de plus facile que cela, si possible.
OriginalL'auteur RainingChain | 2013-08-07
Vous devez vous connecter pour publier un commentaire.
Mise à jour: (de commentaires) Il n'y a pas moyen de contourner la spécification de la police. La Toile de police est calqué sur le court de main la version de la police en CSS.
Cependant, il y a toujours un jeu de polices sur la toile (ou une police type), de sorte que vous pouvez faire est tout d'abord l'extraire de la police de caractères courante en l'utilisant comme ceci:
Alors de remplacer la taille de l'argumentation et de la définir (à noter qu'il y a peut être un paramètre de style, il y a l').
Un simple split pour exemple:
Vous aurez besoin d'aide pour le style si nécessaire (IIRC il s'agit d'abord si elle est utilisée).
Notez que la taille de police est à la quatrième paramètre, donc cela ne fonctionnera pas si vous n'avez pas la propriété font-variant(gras,italique,oblique), font-variant(normal, small-caps) et la police-poids(en gras, etc).
Je suis peut-être aveugle, mais où voulez-vous montrer?
il n'y a pas moyen de contourner la spécification de la police. La Toile de police est calqué sur le court de main la version de la police en CSS.
semble stupide que vous ne pouvez pas spécifier la police des accessoires individuellement 🙁
Cette réponse ne prend pas en compte les noms de polices qui contiennent des espaces, comme
sakkal majalla
ouTimes New Roman
etc. Le fractionnement de l'espace permettra d'obtenir un tableau contenant la taille de la police, plus que beaucoup de mots comme le nom de la police, chacun à un élémentOriginalL'auteur
Ici est plus simple et plus propre façon de changer la taille de police qui fonctionne peu importe si vous utilisez font-variant ou font-weight ou pas.
En supposant que votre nouvelle taille de la police est 12px
Ou une belle doublure si vous voulez augmenter de 2 points:
OriginalL'auteur MacroMan
À répondre correctement à votre question, il n'y a aucun moyen de changer la taille de police d'une toile contexte sans avoir à connaître d'écriture/de la famille de polices.
OriginalL'auteur PHPglue
essayez ceci (à l'aide de jquery):
var span = document.createElement('span'); span.style.font = ctx.font; return span.style.fontSize;
OriginalL'auteur Oscarlito Allentot