pixel-editor/js/_loadImage.js

51 lines
2.2 KiB
JavaScript
Raw Normal View History

/** Loads a file (.png or .lpe)
*
*/
2019-03-27 02:20:54 +03:00
document.getElementById('open-image-browse-holder').addEventListener('change', function () {
let fileName = document.getElementById("open-image-browse-holder").value;
// Getting the extension
let extension = fileName.substring(fileName.lastIndexOf('.')+1, fileName.length) || fileName;
// I didn't write this check and I have no idea what it does
2020-04-04 10:41:56 +03:00
if (this.files && this.files[0]) {
// Btw, checking if the extension is supported
if (extension == 'png' || extension == 'gif' || extension == 'lpe') {
// If it's a Lospec Pixel Editor tm file, I load the project
if (extension == 'lpe') {
let file = this.files[0];
let reader = new FileReader();
2020-04-04 10:41:56 +03:00
// Getting all the data
reader.readAsText(file, "UTF-8");
// Converting the data to a json object and creating a new pixel (see _newPixel.js for more)
reader.onload = function (e) {
let dictionary = JSON.parse(e.target.result);
2020-04-04 10:41:56 +03:00
2020-07-21 00:33:17 +03:00
newPixel(dictionary['canvasWidth'], dictionary['canvasHeight'], dictionary['editorMode'], dictionary);
}
}
else {
//load file
var fileReader = new FileReader();
fileReader.onload = function(e) {
var img = new Image();
img.onload = function() {
//create a new pixel with the images dimentions
2020-07-21 00:33:17 +03:00
newPixel(this.width, this.height, 'Advanced');
2020-04-04 10:41:56 +03:00
//draw the image onto the canvas
currentLayer.context.drawImage(img, 0, 0);
createPaletteFromLayers();
2020-04-04 10:41:56 +03:00
//track google event
ga('send', 'event', 'Pixel Editor Load', colorPalette.length, this.width+'/'+this.height); /*global ga*/
2020-04-04 10:41:56 +03:00
};
img.src = e.target.result;
2020-04-04 10:41:56 +03:00
};
fileReader.readAsDataURL(this.files[0]);
}
2020-04-04 10:41:56 +03:00
}
else alert('Only .lpe project files, PNG and GIF files are allowed at this time.');
2020-04-04 10:41:56 +03:00
}
});