Save Colors in various palette file formats
parent
917136b7f9
commit
40939d2d41
|
@ -2319,10 +2319,10 @@ function image_stretch_and_skew(){
|
|||
$w.center();
|
||||
}
|
||||
|
||||
function choose_file_name_and_type(file_name, types, callback) {
|
||||
function choose_file_name_and_type(dialog_name, file_name, types, callback) {
|
||||
// file_name = `${file_name.replace(/\.(bmp|dib|a?png|gif|jpe?g|jpe|jfif|tiff?|webp|raw)$/i, "")}.png`;
|
||||
|
||||
const $w = new $FormToolWindow(localize("Save As"));
|
||||
const $w = new $FormToolWindow(dialog_name);
|
||||
$w.addClass("save-as");
|
||||
|
||||
// TODO: hotkeys (N, T, S, Enter, Esc)
|
||||
|
@ -2427,7 +2427,7 @@ function save_canvas_as(canvas, fileName, savedCallbackUnreliable){
|
|||
// "256 Color Bitmap (*.bmp;*.dib)": "image/bitmap",
|
||||
// "24-bit Bitmap (*.bmp;*.dib)": "image/bitmap",
|
||||
};
|
||||
choose_file_name_and_type(file_name, image_types, (new_file_name, file_type)=> {
|
||||
choose_file_name_and_type(localize("Save As"), file_name, image_types, (new_file_name, file_type)=> {
|
||||
canvas.toBlob(blob => {
|
||||
const png_magic_bytes = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A];
|
||||
sanity_check_blob(blob, () => {
|
||||
|
|
18
src/menus.js
18
src/menus.js
|
@ -655,10 +655,20 @@ window.menus = {
|
|||
blue: b / 255,
|
||||
}));
|
||||
}
|
||||
const file_content = AnyPalette.writePalette(ap, AnyPalette.formats.GIMP_PALETTE);
|
||||
const blob = new Blob([file_content], {type: "text/plain"});
|
||||
sanity_check_blob(blob, ()=> {
|
||||
saveAs(blob, "Colors.gpl");
|
||||
const palette_types = {};
|
||||
for (const [format_id, format] of Object.entries(AnyPalette.formats)) {
|
||||
if (format.write) {
|
||||
palette_types[format_id] = `${format.name} (${
|
||||
format.fileExtensions.map((extension)=> `*.${extension}`).join(";")
|
||||
})`;
|
||||
}
|
||||
}
|
||||
choose_file_name_and_type(localize("Save Colors"), "Colors", palette_types, (palette_file_name, format_id)=> {
|
||||
const file_content = AnyPalette.writePalette(ap, AnyPalette.formats[format_id]);
|
||||
const blob = new Blob([file_content], {type: "text/plain"});
|
||||
sanity_check_blob(blob, ()=> {
|
||||
saveAs(blob, palette_file_name);
|
||||
});
|
||||
});
|
||||
},
|
||||
description: localize("Saves the current palette of colors to a file."),
|
||||
|
|
|
@ -557,18 +557,11 @@ html, body, .jspaint {
|
|||
}
|
||||
.save-as .window-content > form > div > label > input,
|
||||
.save-as .window-content > form > div > label > select {
|
||||
flex: 1 1 0;
|
||||
min-width: 0px;
|
||||
width: calc(100vw - 220px);
|
||||
max-width: 230px;
|
||||
float: right;
|
||||
margin: 5px;
|
||||
}
|
||||
@media (min-width: 500px) {
|
||||
.save-as .window-content > form > div > label > input,
|
||||
.save-as .window-content > form > div > label > select {
|
||||
width: 230px;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
}
|
||||
.save-as .button-group button {
|
||||
margin: 5px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue