Le rendu des éléments HTML <canvas>
Est-il un moyen d'avoir l'arbitraire d'un élément HTML rendus dans une toile (et puis d'accéder à sa mémoire tampon...).
- Vous devriez vérifier html2canvas.
Vous devez vous connecter pour publier un commentaire.
Est-il un moyen d'avoir l'arbitraire d'un élément HTML rendus dans une toile (et puis d'accéder à sa mémoire tampon...).
Vous devez vous connecter pour publier un commentaire.
Vous n'obtiendrez pas de réel de rendu HTML de
<canvas>
en soi, actuellement, du fait de toile de contexte n'a pas de fonctions pour rendre les éléments HTML.Il y a quelques émulations:
html2canvas projet http://html2canvas.hertzen.com/index.html (essentiellement un convertisseur HTML tentative construit sur Javascript + toile)
HTML au format SVG pour
<canvas>
pourrait être possible en fonction de votre cas d'utilisation:https://github.com/miohtama/Krusovice/blob/master/src/tools/html2svg2canvas.js
Aussi, si vous utilisez Firefox vous pouvez pirater certains prolongée autorisations et ensuite rendre un DOM fenêtre de
<canvas>
https://developer.mozilla.org/en-US/docs/HTML/Canvas/Drawing_Graphics_with_Canvas?redirectlocale=en-US&redirectslug=Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas
Prendre un coup d'oeil sur MDN
Il rendra élément html à l'aide la création d'images SVG.
Par Exemple:
Il est
<em>I</em> like <span style="color:white; text-shadow:0 0 2px blue;">cheese</span>
de l'élément HTML. Et je veux l'ajouter dans<canvas id="canvas" style="border:2px solid black;" width="200" height="200"></canvas>
Élément Canvas.Voici le Code Javascript à ajouter un élément HTML pour toile.
JS:
HTML:
foreignObject
n'est pas pris en charge dans IE.Voici le code pour le rendu HTML arbitraire dans une toile:
exemple:
JS:
HTML:
RasterizeHTML est un très bon projet, mais si vous avez besoin d'accéder à la toile, il l'habitude de travailler sur chrome. en raison de l'utilisation de foreignObject
Si vous avez besoin d'accéder à la toile, alors vous pouvez utiliser html2canvas
Je suis en train d'essayer de trouver un autre projet que html2canvas est très lent en performance
Le CSS élément
()
function peut éventuellement aider certaines personnes ici, même si ce n'est pas une réponse directe à la question. Il permet l'utilisation d'un élément (et tous les enfants, y compris des vidéos, de la croix-domaine des iframes, etc.) comme une image de fond (et de n'importe où ailleurs que vous auriez normalement utiliserurl(...)
dans votre code CSS). Voici un post de blog qui montre ce que vous pouvez faire avec lui.Il a été implémenté dans Firefox depuis 2011, et est être considéré comme dans Chrome/Chrome (n'oubliez pas de donner à la question une étoile si vous vous souciez de cette fonctionnalité).
Conformément à la spécification HTML, vous ne pouvez pas avoir accès aux éléments de la Toile. Vous pouvez obtenir de son contexte, et de dessiner dans les elle le manipuler, mais c'est tout.
MAIS, vous pouvez mettre de la Toile et l'élément html dans le même div avec un
position: relative
et puis définissez la toile et l'autre élément àposition: absolute
.De cette façons, ils seront sur le dessus les uns des autres. Ensuite, vous pouvez utiliser le
left
etright
propriétés CSS pour positionner l'élément html.Si l'élément n'a pas de montre, peut-être que la toile est en avant, il faut donc utiliser la
z-index
propriété CSS pour l'amener devant la toile.