diff options
Diffstat (limited to 'js/frames.js')
| -rw-r--r-- | js/frames.js | 78 |
1 files changed, 17 insertions, 61 deletions
diff --git a/js/frames.js b/js/frames.js index c9c844d..163e899 100644 --- a/js/frames.js +++ b/js/frames.js @@ -1,3 +1,4 @@ +var frame_thumb_size = 93 var frame_editor = {} @@ -29,9 +30,14 @@ frame_editor.bind = function(){ $("#render").click(render) $("#save").click(save) $("#upload").click(upload) + + $("#background").change(function(){ + document.body.style.backgroundColor = $("#background").string() + }) } function add_frame(){ + $("#render").enable() var frame_count = $("#framecount").int() if (frame_count < 2) { add_single_frame() @@ -47,14 +53,13 @@ function add_single_frame(){ var frame = cc.clone().appendTo($el.find(".frame")[0]) frame.canvas.className = "fullsize" frame.canvas.style.display = "none" - var thumb = cc.clone().resize(100,100).appendTo($el.find(".frame")[0]) + var thumb = cc.clone().resize(frame_thumb_size,frame_thumb_size).appendTo($el.find(".frame")[0]) $("#frames").append($el) - $("#render").enable() } function add_frames(frame_count){ rendering = true var t = old_t - start_t - pause_t - var frame_delay = $("#frameinterval").float() * 1000 + var frame_delay = ($("#frameinterval").float() || $("#framedelay").float()) * 1000 var frame for (var i = 0; i < frame_count; i++) { frame = giveFrame(t) @@ -66,9 +71,6 @@ function add_frames(frame_count){ } function remove_frame(){ $(this).closest("div").remove() - if ($("#frames div").length == 0) { - $("#render").disable() - } } function remove_all_frames(){ $("#frames").empty() @@ -96,6 +98,10 @@ function sort_frames(){ function render (){ if (rendering) return + if ($("#frames canvas.fullsize").length == 0) { + add_frame() + } + rendering = true encoder.reset() var delay = $("#framedelay").float() * 1000 || 100 @@ -104,7 +110,7 @@ function render (){ encoder.addFrame(frame.canvas, delay) }) $("#pause,#render,#add-frame").disable() - $("#rendered").find("img").remove() + $("#workspace").find("img").remove() $("#rendered").show() // really bad results with neuquant? // status("quantizing") @@ -121,8 +127,6 @@ function render (){ $("#render").html("rendering") } -function status(s){ $(".status").html(s) } - var encoder = new GifEncoder() encoder.on("quantized", function(url){ @@ -141,62 +145,14 @@ encoder.on("rendered", function(bytes){ encoder.on("rendered-url", function(url){ var image = new Image () lastGif = image.src = url - $("#rendered").append(image) + $("#workspace canvas").hide() + $("#workspace").append(image) $("#uploaded-url").hide().val("") + $("#uploaded-url + br").hide() $("#save,#upload,#rendered").show() $("#pause,#render,#add-frame,#save,#upload").enable() - $("#render").html("render") + $("#render").html("render gif") rendering = false pause(true) }) -function get_filename(){ - var basename = $("#url").val().replace(/^.*\//,"").replace(/\..*$/,"").replace(/[^-_ a-zA-Z0-9]/g,"") - var username = user.username - var filename = basename + "-" + username + "-" + (+new Date()) + ".gif" - return filename.replace(/ /g,"_").replace(/-+/g,"-") -} -function save (){ - if (! lastGif) return; - var filename = get_filename() - var blob = dataUriToBlob(lastGif) - saveAs(blob, filename); -} -function saveJSON (data, filename) { - var bytes = JSON.stringify(data) - var buf = new ArrayBuffer(bytes.length); - var arr = new Uint8Array(buf); - for (var i = 0; i < bytes.length; i++) { - arr[i] = bytes.charCodeAt(i); - } - - var blob = new Blob([arr], { type: "text/json" }); - blob.slice = blob.slice || blob.webkitSlice; - - saveAs(blob, filename); -} - -function upload(){ - var filename = get_filename() - var username = user.username - var blob = dataUriToBlob(lastGif) - uploadImage({ - blob: blob, - filename: filename, - username: username, - success: function(data){ - - // data.url - // data.filesize - // data.success - - console.log(data); - status("uploaded"); - $("#uploaded-url").show().focus().val(data.url) - }, - error: function(data){ - console.log(data) - status("error uploading: " + data.error) - } - }); -} |
