Das Canvas-Element behandelt leider keinen Text gut. Es gibt eine Reihe von Ansätzen (siehe z. B. http://canvaspaint.org/blog/2006/12/rendering-text/), aber sie erscheinen meistens wie Hacks. Was kann ich tun, das ist plattformübergreifend und gibt mir die größte Flexibilität, um meine Schriften so zu gestalten, wie ich es möchte?Was ist der beste Weg, um Text auf einem HTML-Canvas-Element zu zeichnen?
Antwort
Haben Sie sich typeface.js, http://typeface.neocracy.org angesehen. Ich habe gehört, dass es ziemlich solide ist, um Texte zu schreiben. Hier ist von ihrer Website:
"typeface.js verwendet Browser Vektor-Zeichenfunktionen, um Text in HTML-Dokumenten zu zeichnen. Für eine gute Weile haben Browser Unterstützung für Vektor-Zeichnen - Firefox, Safari und Opera unterstützen das <canvas>
Element (ebenso wie SVG), und IE unterstützt VML
Das Projekt typeface.js besteht aus zwei Komponenten: dem Perl-Modul zum Konvertieren von Schriften und der JavaScript-Bibliothek zum Zeichnen im Browser.Das Perl-Modul extrahiert Glyphenumrissinformationen aus TrueType-Schriftarten und schreibt diese Daten im JSON-Format Die Javascript-Bibliothek durchläuft dann das HTML-Dokument und rendert Text unter Verwendung von <canvas>
oder VML, um die Glyphen zu zeichnen
In Browsern, die <canvas>
unterstützen, ist der Text wählbar, aber Sie müssen Vertrauen haben. Wenn Sie auswählen, gibt es kein Feedback, keine Hervorhebung, um Sie wissen zu lassen, dass es funktioniert. Zukünftige Arbeiten werden darauf abzielen Unterstützung besser, Cross-Browser zur Auswahl Text implementieren mit Hervorhebung „(Zitat von http://typeface.neocracy.org/usage.html)
Wenn Sie die HTML5-Text Methoden verwenden möchten, sollten Sie diese Bibliothek versuchen. http://code.google.com/p/canvas-text/ ich bin . Hauptentwickler, ich kann so helfen, und Änderungen vornehmen, wirklich schnell
Die Demos sind hier: http://canvas-text.googlecode.com/svn/trunk/examples/index.html
Es ist immer noch im alpha-Stadium, so dass jeder Fehlerbericht und Feedback ist willkommen :)
- 1. Was ist der beste Weg, um Text mit Geometrie zu zeichnen?
- 2. Was ist der beste Weg, Text ersetzen zu automatisieren?
- 3. Android: Der beste Weg, um ein ImageView zu zeichnen?
- 4. Was ist der beste Weg, um Objekte zu zeichnen und damit umzugehen?
- 5. Was ist der beste Weg, um eine Animation zu fahren?
- 6. Was ist der beste Weg, um eine IllegalArgumentException zu fangen
- 7. Was ist der beste Weg, um eine benutzerdefinierte Schaltfläche zu zeichnen?
- 8. Was ist der beste Weg, um einen InputStream zu überwachen?
- 9. Was ist der beste Weg, um mit OSGI zu beginnen?
- 10. Was ist der beste Weg, um diese Ellipse in einer iPhone App zu zeichnen?
- 11. Was ist der beste Weg, um Flags Enum zu vergleichen?
- 12. Android, Was ist der beste Weg, um AbstractThreadedSyncAdapter zu töten?
- 13. Was ist der beste Weg, um Code zu organisieren?
- 14. Was ist der beste Weg, um vorberechnete Daten zu implementieren?
- 15. Was ist der beste Weg, um eine Tabelle zu deduplizieren?
- 16. Was ist der beste Weg, um mehrere Suchoptionen zu behandeln?
- 17. Was ist der beste Weg, um einen "Timer" zu implementieren?
- 18. Was ist der beste Weg, um einen Fullscreen Quad in OpenGL 3.2 zu zeichnen?
- 19. Was ist der beste Weg, um eine Enumeration zu erhöhen?
- 20. Was ist der beste Weg zu
- 21. Was ist der beste Weg, um einen Datenrahmen zu umgehen?
- 22. Was ist der beste Weg, um mehrere Aktionen zu behandeln?
- 23. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 24. bash - Was ist der beste Weg, um Ergebnisse zu zählen?
- 25. Was ist der beste Weg, um ähnliche Strings zu bearbeiten?
- 26. Was ist der beste Weg, um eine Eigenschaft zu deklarieren?
- 27. Was ist der beste Weg, um in C++ zu casten?
- 28. Was ist der beste Weg, um jQuery zu lernen?
- 29. Was ist der beste Weg, um innere Produkte zu bilden?
- 30. Was ist der beste Weg, um einen ByteArrayOutputStream zu schließen?
That Der Link ist alt und die Spezifikation, auf die er verweist, wurde aktualisiert Konto für eine Textzeichnung API. Für eine ähnliche (und hoffentlich hilfreiche) Frage, siehe http://stackoverflow.com/questions/719848/how-do-you-dreed-text-on-a-canvas-tag-in-safari –
fillText() ist nur unterstützt in Beta-Versionen von Safari und Firefox (nicht sicher über andere Browser), was es nicht sehr nützlich macht. Die verschiedenen Hacks in meinem Link sind meist plattformübergreifend. – swampsjohn