summaryrefslogtreecommitdiff
path: root/js/frames.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/frames.js')
-rw-r--r--js/frames.js78
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)
- }
- });
-}