mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Refactor palette loading.
This commit is contained in:
parent
845e384ae0
commit
c08c7f2d0b
@ -292,9 +292,9 @@ const FileManager = (() => {
|
|||||||
|
|
||||||
return JSON.stringify(dictionary);
|
return JSON.stringify(dictionary);
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPalette() {
|
function loadPalette() {
|
||||||
if (browsePaletteHolder.files && browsePaletteHolder.files[0]) {
|
if (browsePaletteHolder.files && browsePaletteHolder.files[0]) {
|
||||||
//make sure file is allowed filetype
|
|
||||||
let file = browsePaletteHolder.files[0];
|
let file = browsePaletteHolder.files[0];
|
||||||
var fileContentType =
|
var fileContentType =
|
||||||
file.type
|
file.type
|
||||||
@ -302,7 +302,30 @@ const FileManager = (() => {
|
|||||||
|
|
||||||
var fileReader = new FileReader();
|
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
|
//add to palettes so that it can be loaded when they click okay
|
||||||
palettes['Loaded palette'] = {};
|
palettes['Loaded palette'] = {};
|
||||||
palettes['Loaded palette'].colors = colors;
|
palettes['Loaded palette'].colors = colors;
|
||||||
@ -311,11 +334,7 @@ const FileManager = (() => {
|
|||||||
Util.toggle('palette-menu-splash');
|
Util.toggle('palette-menu-splash');
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (fileContentType) {
|
function loadPaletteFromImage(e) {
|
||||||
case 'image/png':
|
|
||||||
case 'image/gif':
|
|
||||||
//load file
|
|
||||||
fileReader.onload = function(e) {
|
|
||||||
var img = new Image();
|
var img = new Image();
|
||||||
img.onload = function() {
|
img.onload = function() {
|
||||||
//draw image onto the temporary canvas
|
//draw image onto the temporary canvas
|
||||||
@ -343,11 +362,10 @@ const FileManager = (() => {
|
|||||||
addPalette(colorPalette);
|
addPalette(colorPalette);
|
||||||
};
|
};
|
||||||
img.src = e.target.result;
|
img.src = e.target.result;
|
||||||
};
|
}
|
||||||
break;
|
|
||||||
case 'gpl':
|
function loadPaletteFromGimp(e) {
|
||||||
fileReader.onload = function() {
|
let content = e.target.result;
|
||||||
file.text().then((content) => {
|
|
||||||
let colorPalette = content.split(/\r?\n/)
|
let colorPalette = content.split(/\r?\n/)
|
||||||
// Skip header line
|
// Skip header line
|
||||||
.slice(1)
|
.slice(1)
|
||||||
@ -379,14 +397,11 @@ const FileManager = (() => {
|
|||||||
|
|
||||||
return '#' + Color.rgbToHex(color);
|
return '#' + Color.rgbToHex(color);
|
||||||
});
|
});
|
||||||
|
|
||||||
addPalette(colorPalette);
|
addPalette(colorPalette);
|
||||||
});
|
}
|
||||||
};
|
|
||||||
break;
|
function loadPaletteFromHex(e) {
|
||||||
case 'hex':
|
let content = e.target.result;
|
||||||
fileReader.onload = function() {
|
|
||||||
file.text().then((content) => {
|
|
||||||
let colorPalette = content.split(/\r?\n/)
|
let colorPalette = content.split(/\r?\n/)
|
||||||
.map((line) => line.trim())
|
.map((line) => line.trim())
|
||||||
.filter((line) => line != "")
|
.filter((line) => line != "")
|
||||||
@ -400,16 +415,6 @@ const FileManager = (() => {
|
|||||||
return '#000000';
|
return '#000000';
|
||||||
});
|
});
|
||||||
addPalette(colorPalette);
|
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;
|
currentImportPivotElement = undefined;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user