IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Convertir Blob (text/html) à Canvas Image


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 137
    Points : 87
    Points
    87
    Par défaut Convertir Blob (text/html) à Canvas Image
    Bonjour,

    J'ai besoin de faire un flou sur une page html quand j'appuie sur un bouton. Pour ce faire j'ai besoin de faire un "screenshot" d'ou je suis rendu pour générer le flou en css. Le soucis c'est que j'ai trouvé un function qui crée un screenshot mais ca génére un blob de type "text/html". J'aimerais savoir s'il est possible à partir de ce blob de générer une image avec un canvas.

    J'obtient cette url : blob:http://localhost/babd6151-2c0f-4c64-b03c-12573a767b68

    Voici le code js du blob

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    (function (exports) {
        function urlsToAbsolute(nodeList) {
            if (!nodeList.length) {
                return [];
            }
            var attrName = 'href';
            if (nodeList[0].__proto__ === HTMLImageElement.prototype
            || nodeList[0].__proto__ === HTMLScriptElement.prototype) {
                attrName = 'src';
            }
            nodeList = [].map.call(nodeList, function (el, i) {
                var attr = el.getAttribute(attrName);
                if (!attr) {
                    return;
                }
                var absURL = /^(https?|data):/i.test(attr);
                if (absURL) {
                    return el;
                } else {
                    return el;
                }
            });
            return nodeList;
        }
     
        function screenshotPage() {
            urlsToAbsolute(document.images);
            urlsToAbsolute(document.querySelectorAll("link[rel='stylesheet']"));
            var screenshot = document.documentElement.cloneNode(true);
            var b = document.createElement('base');
            b.href = document.location.protocol + '//' + location.host;
            var head = screenshot.querySelector('head');
            head.insertBefore(b, head.firstChild);
            screenshot.style.pointerEvents = 'none';
            screenshot.style.overflow = 'hidden';
            screenshot.style.webkitUserSelect = 'none';
            screenshot.style.mozUserSelect = 'none';
            screenshot.style.msUserSelect = 'none';
            screenshot.style.oUserSelect = 'none';
            screenshot.style.userSelect = 'none';
            screenshot.dataset.scrollX = window.scrollX;
            screenshot.dataset.scrollY = window.scrollY;
            var script = document.createElement('script');
            script.textContent = '(' + addOnPageLoad_.toString() + ')();';
            screenshot.querySelector('body').appendChild(script);
            var blob = new Blob([screenshot.outerHTML], {
                type: 'text/html'
            });
            return blob;
        }
     
        function addOnPageLoad_() {
            window.addEventListener('DOMContentLoaded', function (e) {
                var scrollX = document.documentElement.dataset.scrollX || 0;
                var scrollY = document.documentElement.dataset.scrollY || 0;
                window.scrollTo(scrollX, scrollY);
            });
        }
     
        function generate() {
            window.URL = window.URL || window.webkitURL;
            window.open(window.URL.createObjectURL(screenshotPage()));
        }
        exports.screenshotPage = screenshotPage;
        exports.generate = generate;
    })(window);
    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 137
    Points : 87
    Points
    87
    Par défaut base64 data:text/html;base64,
    J'ai peut etre trouvé une piste mais j'aimerais savoir s'il est possible de convertir data:text/html;base64 en image/svg+xml;charset=utf-8 ou directement en image.

  3. #3
    Membre confirmé Avatar de 01001111
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Points : 509
    Points
    509
    Par défaut
    Bonjour,
    peut-être avec foreignobject en svg?
    voir méthode ici:
    https://developer.mozilla.org/fr/doc...element_canvas

    Avec cette méthode tu peux soit t'arrêter à la création du svg ou aller jusqu'à l'image générée via canvas
    0x4F

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 137
    Points : 87
    Points
    87
    Par défaut
    C'est bien sauf pour ie . Je vais faire autre chose

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Image]Convertir du code HTML en image
    Par lalouve dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 09/05/2012, 14h47
  2. [Imagick] Convertir texte HTML en image
    Par Orni dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/10/2010, 14h44
  3. Convertir un texte HTML en image
    Par sami_c dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/06/2010, 10h42
  4. [JLabel] texte HTML avec image dans un JAR
    Par matt11 dans le forum Composants
    Réponses: 5
    Dernier message: 18/08/2008, 13h53
  5. Convertir du code html en image
    Par mirc00 dans le forum Langage
    Réponses: 6
    Dernier message: 17/10/2007, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo