Refactor palette loading.
This commit is contained in:
parent
845e384ae0
commit
c08c7f2d0b
|
@ -292,9 +292,9 @@ const FileManager = (() => {
|
|||
|
||||
return JSON.stringify(dictionary);
|
||||
}
|
||||
|
||||
function loadPalette() {
|
||||
if (browsePaletteHolder.files && browsePaletteHolder.files[0]) {
|
||||
//make sure file is allowed filetype
|
||||
let file = browsePaletteHolder.files[0];
|
||||
var fileContentType =
|
||||
file.type
|
||||
|
@ -302,7 +302,30 @@ const FileManager = (() => {
|
|||
|
||||
var fileReader = new FileReader();
|
||||
|
||||
let addPalette = (colors) => {
|
||||
// dispatch on file type
|
||||
switch (fileContentType) {
|
||||
case 'image/png':
|
||||
case 'image/gif':
|
||||
fileReader.onload = loadPaletteFromImage;
|
||||
fileReader.readAsDataURL(browsePaletteHolder.files[0]);
|
||||
break;
|
||||
case 'gpl':
|
||||
fileReader.onload = loadPaletteFromGimp;
|
||||
fileReader.readAsText(browsePaletteHolder.files[0]);
|
||||
break;
|
||||
case 'hex':
|
||||
fileReader.onload = loadPaletteFromHex;
|
||||
fileReader.readAsText(browsePaletteHolder.files[0]);
|
||||
break;
|
||||
default:
|
||||
alert('Only PNG, GIF, .hex and .gpl files are supported at this time.');
|
||||
}
|
||||
}
|
||||
|
||||
browsePaletteHolder.value = null;
|
||||
}
|
||||
|
||||
function addPalette(colors) {
|
||||
//add to palettes so that it can be loaded when they click okay
|
||||
palettes['Loaded palette'] = {};
|
||||
palettes['Loaded palette'].colors = colors;
|
||||
|
@ -311,11 +334,7 @@ const FileManager = (() => {
|
|||
Util.toggle('palette-menu-splash');
|
||||
}
|
||||
|
||||
switch (fileContentType) {
|
||||
case 'image/png':
|
||||
case 'image/gif':
|
||||
//load file
|
||||
fileReader.onload = function(e) {
|
||||
function loadPaletteFromImage(e) {
|
||||
var img = new Image();
|
||||
img.onload = function() {
|
||||
//draw image onto the temporary canvas
|
||||
|
@ -343,11 +362,10 @@ const FileManager = (() => {
|
|||
addPalette(colorPalette);
|
||||
};
|
||||
img.src = e.target.result;
|
||||
};
|
||||
break;
|
||||
case 'gpl':
|
||||
fileReader.onload = function() {
|
||||
file.text().then((content) => {
|
||||
}
|
||||
|
||||
function loadPaletteFromGimp(e) {
|
||||
let content = e.target.result;
|
||||
let colorPalette = content.split(/\r?\n/)
|
||||
// Skip header line
|
||||
.slice(1)
|
||||
|
@ -379,14 +397,11 @@ const FileManager = (() => {
|
|||
|
||||
return '#' + Color.rgbToHex(color);
|
||||
});
|
||||
|
||||
addPalette(colorPalette);
|
||||
});
|
||||
};
|
||||
break;
|
||||
case 'hex':
|
||||
fileReader.onload = function() {
|
||||
file.text().then((content) => {
|
||||
}
|
||||
|
||||
function loadPaletteFromHex(e) {
|
||||
let content = e.target.result;
|
||||
let colorPalette = content.split(/\r?\n/)
|
||||
.map((line) => line.trim())
|
||||
.filter((line) => line != "")
|
||||
|
@ -400,16 +415,6 @@ const FileManager = (() => {
|
|||
return '#000000';
|
||||
});
|
||||
addPalette(colorPalette);
|
||||
});
|
||||
};
|
||||
break;
|
||||
default:
|
||||
alert('Only PNG, GIF, .hex and .gpl files are supported at this time.');
|
||||
}
|
||||
fileReader.readAsDataURL(browsePaletteHolder.files[0]);
|
||||
}
|
||||
|
||||
browsePaletteHolder.value = null;
|
||||
}
|
||||
|
||||
currentImportPivotElement = undefined;
|
||||
|
|
Loading…
Reference in New Issue