diff --git a/electron_app/package-lock.json b/electron_app/package-lock.json index e99b4781..cf3d5af9 100644 --- a/electron_app/package-lock.json +++ b/electron_app/package-lock.json @@ -1,12 +1,12 @@ { "name": "DiffusionBee", - "version": "1.4.4", + "version": "1.5.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "DiffusionBee", - "version": "1.4.4", + "version": "1.5.1", "hasInstallScript": true, "dependencies": { "@codekraft-studio/vue-record": "^0.0.3", diff --git a/electron_app/src/components/Img2Img.vue b/electron_app/src/components/Img2Img.vue index 8d23da84..f11d64d2 100644 --- a/electron_app/src/components/Img2Img.vue +++ b/electron_app/src/components/Img2Img.vue @@ -8,7 +8,7 @@ -->
Click to add input image and draw a mask
@@ -95,6 +96,7 @@ export default { undo_history : [], retry_params: undefined, stroke_size_no : "30", + is_invert: false, "history_key" : "", }; }, diff --git a/electron_app/src/components_bare/ImageCanvas.vue b/electron_app/src/components_bare/ImageCanvas.vue index 6f4344d8..87a75f73 100644 --- a/electron_app/src/components_bare/ImageCanvas.vue +++ b/electron_app/src/components_bare/ImageCanvas.vue @@ -27,6 +27,7 @@ export default { canvas_d_id : String, canvas_id: String, stroke_size_no : String, + is_invert: Boolean, }, components: {}, computed: { @@ -192,6 +193,19 @@ export default { ctx.clearRect(0, 0, canvas.width, canvas.height); this.is_something_drawn = false }, + invert_inpaint(){ + let canvas = document.getElementById(this.canvas_id); + let ctx = canvas.getContext("2d"); + + let prevCompositionState = ctx.globalCompositeOperation + try { + ctx.globalCompositeOperation = 'xor' + ctx.fillStyle = this.stroke_color; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } finally { + ctx.globalCompositeOperation = prevCompositionState + } + }, on_img_change(){ let that = this; addImageProcess('file://'+this.image_source).then(function(img_tag){ @@ -261,7 +275,14 @@ export default { } }, deep: true - } , + }, + + 'is_invert': { + handler: function() { + this.invert_inpaint(); + }, + deep: true + } } }