Created
May 25, 2017 08:54
-
-
Save devcem/02646ca8598c0e9b95decd0d0a19223d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var campaignImage = { | |
options : { | |
bgOpacity : 0.7, | |
fontFamily : 'Arial, sans-serif', | |
fontSize : 34, | |
textColor : '#fff' | |
}, | |
convert : function(element, text){ | |
var canvas = this.imageToCanvas(element); | |
canvas = this.rectangle(canvas, text); | |
canvas = this.text(canvas, text); | |
return this.canvasToImage(canvas, element); | |
}, | |
imageToCanvas : function(element){ | |
var canvas = document.createElement('canvas'); | |
var context = canvas.getContext("2d"); | |
canvas.width = element.width; | |
canvas.height = element.height; | |
context.drawImage(element, 0, 0); | |
return canvas; | |
}, | |
rectangle : function(canvas){ | |
var context = canvas.getContext("2d"); | |
context.beginPath(); | |
context.globalAlpha = this.options.bgOpacity; | |
context.rect(0, 0, canvas.width, canvas.height); | |
context.fillStyle = "black"; | |
context.fill(); | |
context.globalAlpha = 1.0; | |
return canvas; | |
}, | |
text : function(canvas, text){ | |
var context = canvas.getContext("2d"); | |
context.fillStyle = this.options.textColor; | |
context.font = this.options.fontSize + "px " + this.options.fontFamily; | |
context.textAlign = "center"; | |
var breakline = text.split("\n"); | |
if(breakline.length > 0){ | |
for(line in breakline){ | |
context.fillText(breakline[line], canvas.width/2, (canvas.height/2) + line*this.options.fontSize); | |
} | |
} | |
return canvas; | |
}, | |
canvasToImage : function(canvas, element){ | |
var dataURL = canvas.toDataURL(); | |
element.src = dataURL; | |
} | |
}; | |
//Usage | |
//campaignImage.convert(document.querySelector('.campDetailImg'), "Text"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment