Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Canvas (HTML)
Canvas (HTML) 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Canvas.

L'élément canvas est un composant du langage Web HTML qui permet d'effectuer des rendus dynamiques d'images bitmap en utilisant des scripts dans des langages tels que le javascript. Déjà implémenté dans certains navigateurs, il fait partie de la spécification HTML5. Canvas peut également être utilisé pour mettre en place un moyen de traçage de l'utilisateur sur le site sans avoir à collecter ses données personnelles grâce au canvas fingerprinting[1].

Historique

[modifier | modifier le code]

Introduit à l'origine par Apple pour être utilisé dans WebKit pour des logiciels comme Dashboard et le navigateur Safari, canvas a été par la suite adopté par les navigateurs utilisant Gecko (notamment Mozilla Firefox) et Opera, avant d'être standardisé par le groupe de travail WHATWG. Novell a développé une extension activant les XForms dans Internet Explorer[2] offrant ainsi une prise en charge des fonctionnalités de canvas.

Fonctionnement

[modifier | modifier le code]

canvas se résume en une zone de dessin dont la hauteur et la largeur sont définies dans du code HTML. Du code JavaScript permet d'accéder à l'aire via une série complète de fonctions de dessins, similaires aux autres API 2D, bien que permettant de générer dynamiquement des graphismes. Certaines personnes ont anticipé cet emploi de canvas en l'utilisant pour des graphiques, des animations et de la création d'images.

Exemple

[modifier | modifier le code]

Ce code crée une zone de dessin sur une page HTML :

<canvas id="exemple" width="200" height="200">
  Affichage d'un texte pour les navigateurs qui ne supportent pas canvas.
</canvas>

Avec JavaScript, il est ensuite possible de dessiner dans la zone :

<script>
  var exemple = document.getElementById('exemple');
  var contexte = exemple.getContext('2d');
  contexte.fillStyle = "rgba(0,0,255,0.5)";
  contexte.fillRect(30, 30, 50, 50);
</script>

Ce code dessine à l'écran un rectangle semi-transparent bleu.

Dimensions de canvas et de la surface de dessin

[modifier | modifier le code]

Canvas a deux dimensions : celle de l'élément lui-même et celle de la surface de dessin de l'élément. La définition des attributs css width et height de l'élément les définit mais n'affecte que la taille de l'élément et non la surface de dessin.

Par défaut, les dimensions d'un canvas et de sa surface de dessin sont de 300 pixels de large et 150 pixels de hauteur. Dans l'exemple ci-dessous, avec CSS pour définir la taille de l'élément canvas, la taille de l'élément est de 600/300 pixels, mais la surface de dessin reste inchangée à sa valeur par défaut de 300 pixels × 150 pixels.

Lorsque la taille d'un élément de canevas ne correspond pas à la taille de sa surface de dessin, le navigateur redimensionne la surface de dessin pour s'adapter à l'élément, ce qui peut entraîner des effets de bord.

Exemple de définitions de dimensions différentes

[modifier | modifier le code]
<!DOCTYPE html>
<html>
    <head>
    <title>Dimensions canvas : 600 x 300,
    Dimensions de la surface de dessin : 300 x 150</title>
    <style>
        body {
            background: #dddddd;
        }
        #canvas {
            margin: 20px;
            padding: 20px;
            background: #ffffff;
            border: thin inset #aaaaaa;
            width: 600px;
            height: 300px;
        }
    </style>
    </head>
    <body>
        <canvas id="canvas">
        Canvas n'est pas accepté par ce navigateur
        </canvas>
    </body>
</html>

Réactions

[modifier | modifier le code]

Lors de son introduction, canvas a été accueilli de manière mitigée. Certains se sont plaints de la décision d'Apple d'introduire cette balise propriétaire au lieu de supporter SVG[3], qui n'est pas encore complètement accepté sur le web[4].

Problématiques liées à la propriété intellectuelle

[modifier | modifier le code]

Le 14 mars 2017, le développeur du framework WebKit Dave Hyatt transfère un e-mail du responsable du bureau des brevets d'Apple, Helene Plotka Workman[5], qui déclare qu'Apple se réserve les droits de propriété intellectuelle liés à la section « Graphics: The bitmap canvas »[6] de la nouvelle proposition du Web Hypertext Application Technology Working Group (WHATWG), mais n'est pas opposée à ouvrir les brevets si les spécifications sont transférées sous autre brevet standard. Cette polémique fait ressortir le manque de règles liées à la gestion des brevets par le WHATWG, comparé à celles du World Wide Web Consortium (W3C), qui impose explicitement des licences sans redevance. Apple transférera ensuite les brevets sous les termes de licence du W3C (donc sans redevance)[7], imposant à Apple de fournir accès au brevet sous cette licence dès que le Canvas devient une proposition de standard du W3C[8].

Problématiques liées à la vie privée

[modifier | modifier le code]
Article détaillé : Canvas fingerprinting.

Le Canvas fingerprinting est une technique d'identification par empreinte digitale, qui permet d'identifier et de suivre les visiteurs de site web en utilisant l'élément HTML5 Canvas. Cette technique a reçu une forte couverture médiatique en 2014[9],[10],[11],[12] après la publication d'un papier The Web never forgets[13] de chercheurs de l'Université de Princeton et de l'Université catholique néerlandophone de Louvain. Une des problématiques majeures est qu'elle permet un suivi de l'utilisateur même après une suppression des cookies et du cache du navigateur.

Notes et références

[modifier | modifier le code]
  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Canvas element » (voir la liste des auteurs).
  1. ↑ « Canvas fingerprinting : le successeur du cookie », 14 décembre 2016 (consulté le 31 juillet 2017)
  2. ↑ Novell XForms Explorer
  3. ↑ « Hixie's Natural Log: Extending HTML », sur ln.hixie.ch (consulté le 26 août 2020)
  4. ↑ « Can I use... Support tables for HTML5, CSS3, etc », sur caniuse.com (consulté le 4 janvier 2019)
  5. ↑ « [whatwg] Web Applications 1.0 Draft, David Hyatt, Wed Mar 14 14:31:53 PDT 2007 » [archive du 2 mai 2007] (consulté le 1er mai 2007)
  6. ↑ Web Applications 1.0 Early Working Draft - Dynamic graphics: The bitmap canvas
  7. ↑ HTML Working Group Patent Policy Status – Known Disclosures
  8. ↑ W3C patent policy in use by HTML working group
  9. ↑ Knibbs, Kate, « What You Need to Know About the Sneakiest New Online Tracking Tool », sur Gizmodo, 21 juillet 2014 (consulté le 21 juillet 2014)
  10. ↑ Joseph Steinberg, « You Are Being Tracked Online By A Sneaky New Technology -- Here's What You Need To Know », Forbes,‎ 23 juillet 2014 (lire en ligne, consulté le 15 novembre 2014)
  11. ↑ Angwin, Julia, « Meet the Online Tracking Device That is Virtually Impossible to Block », ProPublica, 21 juillet 2014 (consulté le 21 juillet 2014)
  12. ↑ Kirk, Jeremy, « Stealthy Web tracking tools pose increasing privacy risks to users », PC World,‎ 21 juillet 2014 (lire en ligne, consulté le 21 juillet 2014)
  13. ↑ Acar, Gunes, Eubank, Christian, Englehardt, Steven, Juarez, Marc, Narayanan, Arvind et Diaz, Claudia, « The Web never forgets: Persistent tracking mechanisms in the wild », 24 juillet 2014 (consulté le 24 juillet 2014)

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • SVG
  • VML
  • Quartz
  • Cairo
  • Adobe Flash

Liens externes

[modifier | modifier le code]
  • (en) Description de canvas dans le brouillon des applications web du WHATWG
  • (fr) Présentation de canvas sur Mozilla Developer Center
  • (en) NCL.js Bibliothèque JavaScript permettant de réaliser facilement des animations en canvas.
  • (en) W3Schools Référence sur les fonctions de la balise Canvas.
v · m
API Web
Côté serveur
Protocole de communication
  • CGI
  • SCGI
  • FCGI
  • AJP
  • WSRP
  • WebSocket
APIs serveur
  • C NSAPI (en)
  • C ASAPI
  • C ISAPI
  • COM ASP
  • Servlet
  • container
  • CLI OWIN (en)
  • ASP.NET Handler (en)
  • Python WSGI
  • Ruby Rack
  • JavaScript JSGI (en)
  • Perl PSGI
  • Portlet container
Modules apaches
  • mod_jk
  • mod_lisp (en)
  • mod_mono (en)
  • mod_parrot (en)
  • mod_perl
  • mod_php
  • mod_proxy (en)
  • mod_python (en)
  • mod_wsgi
  • mod_ruby (en)
  • Phusion Passenger
Sujets
  • Ressource du World Wide Web vs. Service web
  • Open API (en)
  • Webhook
  • Serveur d'applications
  • Scripting
Côté client
W3C
  • HTML5 audio (en)
  • Canvas
  • CORS
  • DOM
  • DOM events (en)
  • File (en)
  • Geolocation (en)
  • IndexedDB
  • SSE
  • SVG
  • Video
  • WebRTC
  • WebSocket
  • Web messaging (en)
  • Stockage web local
  • WebAuthn
  • Web worker (en)
  • XMLHttpRequest
Khronos
  • OpenCL
  • WebGL
Autres
  • Gears
  • Web SQL Database (formerly W3C)
Sujets
  • Page web dynamique
  • Open Web Platform (en)
  • Rich Internet application
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Canvas_(HTML)&oldid=222768189 ».
Catégorie :
  • HTML
Catégories cachées :
  • Article contenant un appel à traduction en anglais
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id