From e3696c48da4d01c147b37e0932c4cf7e806f85fb Mon Sep 17 00:00:00 2001 From: timb Date: Thu, 16 Jul 2015 16:41:54 -0700 Subject: export rotated png when canvas is rotated --- js/clipboard.js | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'js/clipboard.js') diff --git a/js/clipboard.js b/js/clipboard.js index 79d323e..52f153c 100644 --- a/js/clipboard.js +++ b/js/clipboard.js @@ -5,6 +5,7 @@ var clipboard = (function () { importing: false, visible: false, canvas: document.createElement("canvas"), + canvas_r: document.createElement("canvas"), bind: function () { import_ascii.addEventListener("change", exports.setFormat("ascii")) @@ -210,7 +211,21 @@ var clipboard = (function () { return output }, - export_png: function (done_fn) { + rotate_canvas: function(){ + var cr = clipboard.canvas_r, c = clipboard.canvas + // cr.width = c.width + // cr.height = c.height + cr.width = c.height + cr.height = c.width + var ctx = cr.getContext('2d') + ctx.resetTransform() + ctx.translate(0, cr.height) + ctx.rotate(-Math.PI / 2) + ctx.drawImage(c, 0, 0) + return cr + }, + + export_canvas: function (done_fn) { var opts = { palette: 'mirc', font: 'fixedsys_8x15', @@ -218,8 +233,9 @@ var clipboard = (function () { bg: 1, canvas: clipboard.canvas } - if (done_fn){ - opts.done = done_fn + opts.done = function(){ + var c = canvas.rotated ? clipboard.rotate_canvas() : clipboard.canvas + if (done_fn) done_fn(c) } var start = Date.now(); @@ -233,22 +249,22 @@ var clipboard = (function () { }, save_png: function () { - var save_fn = function(){ + var save_fn = function(canvas){ var filename = clipboard.filename() + ".png" - var blob = dataUriToBlob(clipboard.canvas.toDataURL()) + var blob = dataUriToBlob(canvas.toDataURL()) saveAs(blob, filename); } - clipboard.export_png(save_fn) + clipboard.export_canvas(save_fn) }, upload_png: function () { - var upload_fn = function(){ - var uri = clipboard.canvas.toDataURL() + var upload_fn = function(canvas){ + var uri = canvas.toDataURL() var filename = clipboard.filename() var tag = 'ascii' upload(uri, filename, tag) } - clipboard.export_png(upload_fn) + clipboard.export_canvas(upload_fn) }, } -- cgit v1.2.3-70-g09d2