37 votes

Quel est l'état actuel de la précision des sous-pixels dans les principaux navigateurs?

Je travaille sur une application de dessin qui exige un haut niveau de précision, et je me demande qui de l'navigateur principales plates-formes (y compris le code HTML élément Canvas, et Flash) de donner le meilleur de sous-pixels de mise en page à l'exactitude, à la fois pour les éléments dessinés (les rectangles de Toile ou de Flash, DIVs en position absolue dans le navigateur), et pour le texte.

Il y a un certain nombre de postes liés à cette, fois sur ce site et d'autres, (voir liste plus bas), mais beaucoup sont assez anciennes, et aucun résume bien la situation actuelle.

Ma compréhension est que Flash a un support natif pour les sous-pixels de positionnement, à l'aide de twips pour positionner les objets à un vingtième d'un pixel, et que lorsque l'TextLayoutFramework est utilisé, cette précision s'étend également au texte. Il y a au moins un rapport, toutefois, que cela ne fonctionne pas correctement dans le navigateur Chrome. Quelqu'un peut-il confirmer cela?

Ma compréhension de la situation dans les navigateurs que Firefox 14+ prend en charge les sous-pixels de positionnement pour le texte et les éléments dessinés, à la fois dans la mise en page et à l'intérieur de la Toile, mais je n'ai pas été en mesure de déterminer le degré de précision de ce qui est.

Je comprends Chrome (à compter de la version v21) ne prend pas en charge les sous-pixels de positionnement à tous.

Je comprends IE9 ne prend pas en charge les sous-pixels de positionnement, mais il apparaît à partir de la MS blog en lien ci-dessous que IE10 volonté.

Je ne sais pas si il y a n'importe quel ordinateur Mac/PC à l'écart, et je ne sais pas également si l'exactitude du Flash varie entre plates-formes et/ou les navigateurs.

Je comprends un résumé de la question comme ça peut prêter à débat, mais je crois que c'est assez spécifique pour les personnes à fournir des réponses utiles, et j'espère que ce thread peut être une référence pour l'état de la précision de positionnement jusqu'à maintenant.

Quelques références:

http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx

Sub-pixel rendering en Chrome Toile

http://johnblackburne.blogspot.co.uk/2011/11/twips.html

http://ejohn.org/blog/sub-pixel-problems-in-css/

De sous-Pixels de positionnement CSS

https://productforums.google.com/forum/?fromgroups=#!topic/chrome/pRt3tiVIkSI

10voto

Tyler Durden Points 4349

Actuellement, vous pouvez attendre le meilleur de l'arrondissement et de la sous-pixel de soutien à venir à partir de Mozilla avec IE en tant que finaliste. IE pourrait être plus affiné, mais leur libération cycles sont tellement longue que Mozilla est susceptible de rester en avance sur eux.

Aussi loin que de faire des sous-pixels de mise en page, vous pouvez peut-être en train de chasser une mèche, parce que le sous-pixel avantage améliore l'anti-aliasing de questions, pas d'écran de précision de la localisation. Votre image ne sera jamais plus précis que 1 pixel à partir de la position réelle, indépendamment de sous-pixel de soutien.

La raison pour laquelle certains navigateurs ne fait pas de zoom correctement n'a rien à voir avec des sous-pixels de soutien, c'est parce qu'ils sont de ne pas se souvenir de la position exacte et l'arrondi correctement. En d'autres termes, ils sont prématurément arrondissement la position, et qui provoque l'image d'être mal alignée.

2voto

TheCodeArtist Points 6837

Réponse courte:
Pas de. Il n'est PAS possible/documenté.
Et même si déterminé expérimentalement, il n'est PAS assuré de rester le même dans l'avenir.

Réponse longue:
Au sous-pixel précision, il y a beaucoup de différences entre les Navigateurs/OS/HW sur la façon dont l'entrée est capturé/rendu. Avec le h/w accélération être activé sur la plupart des navigateurs modernes, il y a un grand nombre de variations dans le rendu sur plusieurs Ordinateurs exécutant différents navigateurs sur différents systèmes d'exploitation. Donc, il est possible à même d'identifier chaque utilisateur unique par le légèrement différentes variations dans le rendu de la sortie d'une commune de l'échantillon.

Plutôt que de s'inquiéter de la divergence dans les structures sous-jacentes, Comment sur la conception de l'INTERFACE utilisateur de votre application de dessin pour être indépendants l'un de ces problèmes. Couple de méthodes que je peux penser en ce moment sont:

  1. Permettre la modification de l'image au zoom/magnifié les niveaux.

  2. La conception d'un snap-to-grid méthode des éléments.

Mise à jour:
Le "zoom" opération de votre implémentation personnalisée et PAS une caractéristique des structures sous-jacentes. Donc, si vous avez besoin de sous-pixel, l'exactitude de l'ordre de 1/10ème d'un pixel, on aurait besoin d'avoir un 10x_zoom() mis en œuvre dans le cadre de la web-app qui permettrait de rendre les données de

1er pixel --> 10x10pixels au point (0,0),
2ème pixel --> 10x10pixels a partir de la (11,11).

De cette façon, on aurait un très vue agrandie de données, mais le cadre est au courant de tout cela et rend exacte de l'écran de pixels(qui dans notre cas est maintenant de 1/10ème du pixel de l'image).

Aussi une chose importante à noter que cette opération serait de consommer beaucoup de mémoire si fait pour l'ensemble de l'image à la fois. Donc de le faire pour SEULEMENT la partie visible de l'image dans un "zoom-fenêtre" serait plus rapide et moins gourmande en mémoire du processus.

Une fois mis en œuvre dans votre dessin web-application de la sous-pixel des inexactitudes dans les cadres ne pourrait pas être un problème pour l'utilisateur car il peut toujours basculer vers l'un de ces modes et de fournir des données exactes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X