You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
/*
 | 
						|
 * vim: ts=4:sw=4:expandtab
 | 
						|
 */
 | 
						|
(function () {
 | 
						|
    'use strict';
 | 
						|
    window.Whisper = window.Whisper || {};
 | 
						|
 | 
						|
    /*
 | 
						|
    * Render an avatar identicon to an svg for use in a notification.
 | 
						|
    */
 | 
						|
    Whisper.IdenticonSVGView = Whisper.View.extend({
 | 
						|
        templateName: 'identicon-svg',
 | 
						|
        initialize: function(options) {
 | 
						|
            this.render_attributes = options;
 | 
						|
        },
 | 
						|
        getSVGUrl: function() {
 | 
						|
            var html = this.render().$el.html();
 | 
						|
            var svg = new Blob([html], {type: 'image/svg+xml;charset=utf-8'});
 | 
						|
            return URL.createObjectURL(svg);
 | 
						|
        },
 | 
						|
        getDataUrl: function() {
 | 
						|
            var svgurl = this.getSVGUrl();
 | 
						|
            return new Promise(function(resolve) {
 | 
						|
                var img = document.createElement('img');
 | 
						|
                img.onload = function () {
 | 
						|
                    var canvas = loadImage.scale(img, {
 | 
						|
                        canvas: true, maxWidth: 100, maxHeight: 100
 | 
						|
                    });
 | 
						|
                    var ctx = canvas.getContext('2d');
 | 
						|
                    ctx.drawImage(img, 0, 0);
 | 
						|
                    URL.revokeObjectURL(svgurl);
 | 
						|
                    resolve(canvas.toDataURL('image/png'));
 | 
						|
                };
 | 
						|
 | 
						|
                img.src = svgurl;
 | 
						|
            });
 | 
						|
        }
 | 
						|
    });
 | 
						|
})();
 |