From b44e9c775203cc2b4fb65b07529662a53a2ae06e Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Fri, 11 Nov 2022 20:03:03 +1100 Subject: [PATCH] Changes mask to diagonal line pattern --- frontend/src/assets/images/mask_pattern2.png | Bin 0 -> 1902 bytes .../canvas/IAICanvasMaskCompositer.tsx | 55 ++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 frontend/src/assets/images/mask_pattern2.png diff --git a/frontend/src/assets/images/mask_pattern2.png b/frontend/src/assets/images/mask_pattern2.png new file mode 100644 index 0000000000000000000000000000000000000000..b917d0c421fae3006e657806f62c7515f832e9e8 GIT binary patch literal 1902 zcmb_de@qis96vHQE#RgO1JO)x*TtDYd%YrH&lZFhq|CC~!h|_sNBi2Iw0Gy-RSITo zf}4TFIMBIh7-nJ^A~H9#p<~0Dj7bcHWSAg=V3={54DiP`U1W3bS|}j0{j=mbV1fTy=~?s~{3R#)c?4N-n$F4*b4;5_8|zV0cD4{G zeI5?tkeB4+C|eN_(L&&)867s>b{<1%yAInLXHuCsJ#f+Kr97~fW@gz+i)a!h7a&+-6`Q^qM(SYjxubMMwkpACIXiboKULpnRJnM%tM!uIdsm&imc#bxnKaZwg|#= z3}O17ZsMc3r;$yjf2Vsqv%(O>)SWO9lS!TB)6@n+RtX1i3lLZ@Zv&}20VB%&nUL~A znrRfE= zfaICmE0s2zp6KAzCT$1Bvzzz(ozB($X+B?d}_EVT;uCPBcFMXV>|2vWU1njlD3AXR=gJPUS8 zr2dO9bu_Al7A6y!P75N-m-v?gZEgiS0<*x>P5b*BMg3JKDVvle9mesj-D?AOe^^j1 zfC{WbET(vn?1Tl@VaW~$4bxeInx)P~2_>OY#?7`Ub^)k1e{A@qXSj6Yrd-qFbDY=u z2{Vo;vkhRs`>fz{$Em0Sf zRvvMb9n3q+-EG(rSC}!lc3Xyll=3PtOs(W+$$WqEfZxsz{2ryjpy zX{lWKTWP-az^}D+zx-J{uIcI3^n^Iq)jPVc=6Bw_mu8P??E3L$M4x=|*^Y15b!1yt z%l5u{f*fMFD|ed)TC)EdJYP={bkp_5$W?E6<+xUGs28cfL41{9#yV z!9eM;uGix~yEH+aS-Nk}_x)J&@vvgsD{+u?kt!b&SeT8;)vMu~g{DQ7vtiLC5Z|jo0k3RqAz0sF$)!gq6E0C$2 zZOfMqG4N|4GS`KSs2 literal 0 HcmV?d00001 diff --git a/frontend/src/features/canvas/IAICanvasMaskCompositer.tsx b/frontend/src/features/canvas/IAICanvasMaskCompositer.tsx index c3e218eff4..27ee3c0027 100644 --- a/frontend/src/features/canvas/IAICanvasMaskCompositer.tsx +++ b/frontend/src/features/canvas/IAICanvasMaskCompositer.tsx @@ -1,13 +1,18 @@ import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/store'; import { RectConfig } from 'konva/lib/shapes/Rect'; +import _ from 'lodash'; import { Rect } from 'react-konva'; import { currentCanvasSelector, InpaintingCanvasState, OutpaintingCanvasState, } from './canvasSlice'; +import maskPatternImage from 'assets/images/mask_pattern2.png'; + import { rgbaColorToString } from './util/colorToString'; +import { useCallback, useEffect, useRef, useState } from 'react'; +import Konva from 'konva'; export const canvasMaskCompositerSelector = createSelector( currentCanvasSelector, @@ -20,6 +25,7 @@ export const canvasMaskCompositerSelector = createSelector( stageDimensions, stageScale, maskColorString: rgbaColorToString(maskColor), + maskOpacity: maskColor.a, }; } ); @@ -29,18 +35,59 @@ type IAICanvasMaskCompositerProps = RectConfig; const IAICanvasMaskCompositer = (props: IAICanvasMaskCompositerProps) => { const { ...rest } = props; - const { maskColorString, stageCoordinates, stageDimensions, stageScale } = - useAppSelector(canvasMaskCompositerSelector); + const { + maskColorString, + maskOpacity, + stageCoordinates, + stageDimensions, + stageScale, + } = useAppSelector(canvasMaskCompositerSelector); + + const [fillPatternImage, setFillPatternImage] = + useState(null); + + const [offset, setOffset] = useState(0); + + const rectRef = useRef(null); + const incrementOffset = useCallback(() => { + setOffset(offset + 1); + setTimeout(incrementOffset, 500); + console.log('toggle'); + console.log('incrementing'); + }, [offset]); + + useEffect(() => { + if (fillPatternImage) return; + const image = new Image(); + + image.onload = () => { + setFillPatternImage(image); + }; + + image.src = maskPatternImage; + }, [fillPatternImage]); + + useEffect(() => { + const timer = setInterval(() => setOffset((i) => (i + 1) % 6), 100); + return () => clearInterval(timer); + }, []); + + if (!fillPatternImage) return null; return ( );