Add action icon for Invert
parent
f9069fd8ab
commit
be216e5aad
Binary file not shown.
After Width: | Height: | Size: 139 B |
|
@ -1439,7 +1439,10 @@ async function edit_paste(execCommandFallback){
|
||||||
}
|
}
|
||||||
|
|
||||||
function image_invert(){
|
function image_invert(){
|
||||||
apply_image_transformation("Invert", (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
apply_image_transformation({
|
||||||
|
name: "Invert",
|
||||||
|
icon: get_icon_for_tool({help_icon: "p_invert.png"}), // HACK
|
||||||
|
}, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
||||||
invert_rgb(original_ctx, new_ctx);
|
invert_rgb(original_ctx, new_ctx);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -393,7 +393,7 @@ function draw_noncontiguous_fill(ctx, x, y, fill_r, fill_g, fill_b, fill_a){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function apply_image_transformation(action_name, fn){
|
function apply_image_transformation(meta, fn){
|
||||||
// Apply an image transformation function to either the selection or the entire canvas
|
// Apply an image transformation function to either the selection or the entire canvas
|
||||||
const original_canvas = selection ? selection.source_canvas: canvas;
|
const original_canvas = selection ? selection.source_canvas: canvas;
|
||||||
|
|
||||||
|
@ -406,13 +406,17 @@ function apply_image_transformation(action_name, fn){
|
||||||
|
|
||||||
if(selection){
|
if(selection){
|
||||||
undoable({
|
undoable({
|
||||||
name: `${action_name} Selection`,
|
name: `${meta.name} Selection`,
|
||||||
|
icon: meta.icon,
|
||||||
soft: true,
|
soft: true,
|
||||||
}, () => {
|
}, () => {
|
||||||
selection.replace_source_canvas(new_canvas);
|
selection.replace_source_canvas(new_canvas);
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
undoable({name: action_name}, () => {
|
undoable({
|
||||||
|
name: meta.name,
|
||||||
|
icon: meta.icon,
|
||||||
|
}, () => {
|
||||||
deselect();
|
deselect();
|
||||||
cancel();
|
cancel();
|
||||||
saved = false;
|
saved = false;
|
||||||
|
@ -425,7 +429,7 @@ function apply_image_transformation(action_name, fn){
|
||||||
}
|
}
|
||||||
|
|
||||||
function flip_horizontal(){
|
function flip_horizontal(){
|
||||||
apply_image_transformation("Flip Horizontal", (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
apply_image_transformation({name: "Flip Horizontal"}, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
||||||
new_ctx.translate(new_canvas.width, 0);
|
new_ctx.translate(new_canvas.width, 0);
|
||||||
new_ctx.scale(-1, 1);
|
new_ctx.scale(-1, 1);
|
||||||
new_ctx.drawImage(original_canvas, 0, 0);
|
new_ctx.drawImage(original_canvas, 0, 0);
|
||||||
|
@ -433,7 +437,7 @@ function flip_horizontal(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function flip_vertical(){
|
function flip_vertical(){
|
||||||
apply_image_transformation("Flip Vertical", (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
apply_image_transformation({name: "Flip Vertical"}, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
||||||
new_ctx.translate(0, new_canvas.height);
|
new_ctx.translate(0, new_canvas.height);
|
||||||
new_ctx.scale(1, -1);
|
new_ctx.scale(1, -1);
|
||||||
new_ctx.drawImage(original_canvas, 0, 0);
|
new_ctx.drawImage(original_canvas, 0, 0);
|
||||||
|
@ -441,7 +445,7 @@ function flip_vertical(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function rotate(angle){
|
function rotate(angle){
|
||||||
apply_image_transformation(`Rotate ${angle / TAU * 360} degrees`, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
apply_image_transformation({name: `Rotate ${angle / TAU * 360} degrees`}, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
||||||
new_ctx.save();
|
new_ctx.save();
|
||||||
switch(angle){
|
switch(angle){
|
||||||
case TAU / 4:
|
case TAU / 4:
|
||||||
|
@ -513,7 +517,7 @@ function rotate(angle){
|
||||||
}
|
}
|
||||||
|
|
||||||
function stretch_and_skew(xscale, yscale, hsa, vsa){
|
function stretch_and_skew(xscale, yscale, hsa, vsa){
|
||||||
apply_image_transformation("Stretch/Skew", (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
apply_image_transformation({name: "Stretch/Skew"}, (original_canvas, original_ctx, new_canvas, new_ctx) => {
|
||||||
const w = original_canvas.width * xscale;
|
const w = original_canvas.width * xscale;
|
||||||
const h = original_canvas.height * yscale;
|
const h = original_canvas.height * yscale;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue