summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortimb <opuscule@gmail.com>2015-07-16 16:41:54 -0700
committertimb <opuscule@gmail.com>2015-07-16 16:41:54 -0700
commite3696c48da4d01c147b37e0932c4cf7e806f85fb (patch)
tree2856f616e049f51b7b0da0ccff4927fe7f158dfa
parent4ca3230391b7e01bec07365117511141810f149b (diff)
export rotated png when canvas is rotated
-rw-r--r--js/clipboard.js34
1 files changed, 25 insertions, 9 deletions
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)
},
}