Skip to content

Commit 1ca8fd3

Browse files
committed
Small changes
- Updated go packages - Updated frontend deps
1 parent c731556 commit 1ca8fd3

File tree

10 files changed

+46
-33
lines changed

10 files changed

+46
-33
lines changed

app.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"rmbg/utils"
77
"rmbg/utils/image"
8+
goruntime "runtime"
89
"syscall"
910

1011
"github.com/wailsapp/wails/v2/pkg/runtime"
@@ -49,14 +50,12 @@ func (a *App) startup(ctx context.Context) {
4950
if langData, err := utils.LoadLang(a.kernel32); err == nil {
5051
a.LangStrings = langData
5152
} else {
52-
// runtime.LogError(ctx, "Error loading lang file:"+err.Error())
5353
runtime.EventsEmit(ctx, "alert", err.Error())
5454
}
5555

5656
if accentColor, err := utils.GetAccentColor(); err == nil {
5757
a.AccentColor = accentColor
5858
} else {
59-
// runtime.LogError(ctx, "Error getting accent color:"+err.Error())
6059
runtime.EventsEmit(ctx, "alert", err.Error())
6160
}
6261

@@ -68,7 +67,6 @@ func (a *App) startup(ctx context.Context) {
6867
CF_PNG: image.RegisterClipboardFormat(formatName, a.user32),
6968
}
7069
} else {
71-
// runtime.LogError(ctx, "Error getting clipboard format:"+err.Error())
7270
runtime.EventsEmit(ctx, "alert", err.Error())
7371
}
7472
}
@@ -306,7 +304,10 @@ func (a *App) ClearImageMem(Imagetype string) {
306304
a.imgData.pngcropimgpath = ""
307305
a.imgData.jpgcropimg = nil
308306
a.imgData.jpgcropimgpath = ""
307+
} else {
308+
return
309309
}
310+
goruntime.GC()
310311
}
311312

312313
func (a *App) CropImage(left, right, top, bottom float32, isJPG bool) []string {

frontend/package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,21 @@
99
"preview": "vite preview"
1010
},
1111
"dependencies": {
12-
"@fortawesome/fontawesome-svg-core": "^6.6.0",
13-
"@fortawesome/free-regular-svg-icons": "^6.6.0",
14-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
12+
"@fortawesome/fontawesome-svg-core": "^6.7.2",
13+
"@fortawesome/free-regular-svg-icons": "^6.7.2",
14+
"@fortawesome/free-solid-svg-icons": "^6.7.2",
1515
"@fortawesome/react-fontawesome": "^0.2.2",
16-
"motion": "^11.13.1",
17-
"react": "^18.3.1",
18-
"react-dom": "^18.3.1",
19-
"react-router-dom": "^6.27.0"
16+
"motion": "^12.4.7",
17+
"react": "^19.0.0",
18+
"react-dom": "^19.0.0",
19+
"react-router-dom": "^7.2.0"
2020
},
2121
"devDependencies": {
22-
"@types/react": "^18.3.12",
23-
"@types/react-dom": "^18.3.1",
24-
"@vitejs/plugin-react": "^4.3.3",
25-
"typescript": "^5.6.3",
26-
"vite": "^5.4.10"
22+
"@types/react": "^19.0.10",
23+
"@types/react-dom": "^19.0.4",
24+
"@vitejs/plugin-react": "^4.3.4",
25+
"babel-plugin-react-compiler": "^19.0.0-beta-e1e972c-20250221",
26+
"typescript": "^5.7.3",
27+
"vite": "^6.1.1"
2728
}
2829
}

frontend/src/components/CropEditor.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ImageContext } from "./contexts";
33

44
type CropEditorProps = {
55
rect: DOMRect | null;
6-
imageRef: RefObject<HTMLImageElement>;
6+
imageRef: RefObject<HTMLImageElement | null>;
77
isImageDark: boolean;
88
};
99

@@ -27,7 +27,7 @@ export default function CropEditor(props: CropEditorProps) {
2727
setImageHeight(props.imageRef.current.naturalHeight / props.rect.height);
2828
}
2929
}
30-
},[props.imageRef.current, props.rect]);
30+
},[props.imageRef, props.rect]);
3131

3232
useLayoutEffect(() => {
3333

frontend/src/components/CropImageContainer.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,9 @@ export function InputImageContainer() {
208208

209209
return (
210210
<div ref={imageContainer} className='imageContainer imageContainerCrop' onDrop={handleURLDrop} style={{'--wails-drop-target': 'drop', backgroundColor: cropImage!="" && "rgba(255,255,255,0)", cursor: cropImage!="" && 'auto'} as CSSProperties} onClick={openDialog}>
211-
<img ref={imageRef} src={cropImage} style={{userSelect: 'none', pointerEvents: 'none', filter: cropImage&& 'brightness(0.5)'}} draggable={false} onLoad={onImageLoad}></img>
211+
{cropImage!="" &&
212+
<img ref={imageRef} src={cropImage} style={{userSelect: 'none', pointerEvents: 'none', filter: 'brightness(0.5)'}} draggable={false} onLoad={onImageLoad}></img>
213+
}
212214
<div style={{position: 'absolute', height: '100%', width: '100%', color: 'black', display: 'flex', justifyContent: 'center', alignItems: 'center', zIndex: -1, opacity: cropImage!=""?0:1}}>
213215
<FontAwesomeIcon icon={faCloudArrowUp} color="lightgray" style={{width: '60%', height: '60%', fontSize: '60%', maxHeight: '200px', maxWidth: '200px'}} />
214216
</div>

frontend/src/components/InputRMBGImageContainer.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export function InputImageContainer() {
1818
HandleDrop("RMBG", paths[0], false).then(([base64, fileType]) => {
1919
if (base64 == "" || fileType == "") {
2020
setInputRMBGImage("");
21-
}else{
21+
} else {
2222
setInputRMBGImage(`data:${fileType};base64,${base64}`);
2323
}
2424
});
@@ -46,12 +46,12 @@ export function InputImageContainer() {
4646
HandleDrop("RMBG", data, true).then(([base64, fileType]) => {
4747
if (base64 == "" || fileType == "") {
4848
setInputRMBGImage("");
49-
}else{
49+
} else {
5050
setInputRMBGImage(`data:${fileType};base64,${base64}`);
5151
}
5252
});
5353
imageContainer.current?.classList.remove('wails-drop-target-active');
54-
}else if (data.startsWith('data:')){
54+
} else if (data.startsWith('data:')) {
5555
imageContainer.current?.classList.remove('wails-drop-target-active');
5656
}
5757
});
@@ -65,7 +65,7 @@ export function InputImageContainer() {
6565
const [base64, fileType] = result;
6666
if (base64 == "" || fileType == "") {
6767
setInputRMBGImage("");
68-
}else{
68+
} else {
6969
setInputRMBGImage(`data:${fileType};base64,${base64}`);
7070
}
7171
}
@@ -85,7 +85,7 @@ export function InputImageContainer() {
8585

8686
return (
8787
<div ref={imageContainer} className='imageContainer' onDrop={handleURLDrop} style={{'--wails-drop-target': 'drop'} as CSSProperties} onClick={openDialog}>
88-
<img ref={imgRef} src={inputRMBGImage} style={{userSelect: 'none', pointerEvents: 'none'}} draggable={false}></img>
88+
{inputRMBGImage!="" && <img ref={imgRef} src={inputRMBGImage} style={{userSelect: 'none', pointerEvents: 'none'}} draggable={false}></img>}
8989
<div style={{position: 'absolute', height: '100%', width: '100%', color: 'black', display: 'flex', justifyContent: 'center', alignItems: 'center', zIndex: -1,}}>
9090
<FontAwesomeIcon icon={faCloudArrowUp} color="lightgray" style={{width: '60%', height: '60%', fontSize: '60%'}} />
9191
</div>

frontend/src/components/views/RMBGView.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ function OutputImageContainer() {
3535
const imgRef = useRef<HTMLImageElement>(null);
3636

3737
useLayoutEffect(() => {
38-
if(imgRef.current){
38+
if (imgRef.current) {
3939
if (outputRMBGImage != "") {
4040
imgRef.current.style.width = '100%';
4141
imgRef.current.style.height = '100%';
42-
}else{
42+
} else {
4343
imgRef.current.style.width = 'auto';
4444
imgRef.current.style.height = 'auto';
4545
}
@@ -48,7 +48,7 @@ function OutputImageContainer() {
4848

4949
return (
5050
<div className="imageContainer" style={{cursor: 'auto'}}>
51-
<img ref={imgRef} src={outputRMBGImage} style={{userSelect: 'none', pointerEvents: 'none'}} draggable={false}></img>
51+
{outputRMBGImage!="" && <img ref={imgRef} src={outputRMBGImage} style={{userSelect: 'none', pointerEvents: 'none'}} draggable={false}></img>}
5252
<div style={{position: 'absolute', height: '100%', width: '100%', color: 'black', display: 'flex', justifyContent: 'center', alignItems: 'center', zIndex: -2, backgroundColor: 'white'}}>
5353
{removingBG?
5454
<FontAwesomeIcon icon={faSpinner} color='lightgray' spinPulse style={{height: '50%', width: '50%', fontSize: '50%'}} />

frontend/vite.config.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,11 @@ import react from '@vitejs/plugin-react'
33

44
// https://vitejs.dev/config/
55
export default defineConfig({
6-
plugins: [react()]
6+
plugins: [react({
7+
babel: {
8+
plugins: [
9+
["babel-plugin-react-compiler"],
10+
],
11+
},
12+
})],
713
})

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.24.0
44

55
require (
66
github.com/disintegration/imaging v1.6.2
7-
github.com/wailsapp/wails/v2 v2.10.0
7+
github.com/wailsapp/wails/v2 v2.10.1
88
golang.org/x/image v0.24.0
99
golang.org/x/sys v0.30.0
1010
)
@@ -32,7 +32,7 @@ require (
3232
github.com/valyala/fasttemplate v1.2.2 // indirect
3333
github.com/wailsapp/go-webview2 v1.0.19 // indirect
3434
github.com/wailsapp/mimetype v1.4.1 // indirect
35-
golang.org/x/crypto v0.33.0 // indirect
35+
golang.org/x/crypto v0.35.0 // indirect
3636
golang.org/x/net v0.35.0 // indirect
3737
golang.org/x/text v0.22.0 // indirect
3838
)

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ github.com/wailsapp/go-webview2 v1.0.19 h1:7U3QcDj1PrBPaxJNCui2k1SkWml+Q5kvFUFyT
5656
github.com/wailsapp/go-webview2 v1.0.19/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc=
5757
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
5858
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
59-
github.com/wailsapp/wails/v2 v2.10.0 h1:kfpWnfdNL1nXq0PyqAVPPDQY2pxkqcqWab01NGh3a6w=
60-
github.com/wailsapp/wails/v2 v2.10.0/go.mod h1:zrebnFV6MQf9kx8HI4iAv63vsR5v67oS7GTEZ7Pz1TY=
61-
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
62-
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
59+
github.com/wailsapp/wails/v2 v2.10.1 h1:QWHvWMXII2nI/nXz77gpPG8P3ehl6zKe+u4su5BWIns=
60+
github.com/wailsapp/wails/v2 v2.10.1/go.mod h1:zrebnFV6MQf9kx8HI4iAv63vsR5v67oS7GTEZ7Pz1TY=
61+
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
62+
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
6363
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
6464
golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ=
6565
golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8=

utils/image/rembg.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"errors"
66
"os/exec"
7+
"runtime"
78
"syscall"
89
)
910

@@ -25,6 +26,7 @@ func RemBG(model string, path string, img []byte) ([]byte, error) {
2526
return nil, err
2627
}
2728
cmd = nil
29+
runtime.GC()
2830
return out.Bytes(), nil
2931
} else if img != nil {
3032
cmd := exec.Command("rembg", "i", "-m", model, "-", "-")
@@ -44,6 +46,7 @@ func RemBG(model string, path string, img []byte) ([]byte, error) {
4446
return nil, err
4547
}
4648
cmd = nil
49+
runtime.GC()
4750
return out.Bytes(), nil
4851
}
4952
return nil, errors.New("NO_IMAGE")

0 commit comments

Comments
 (0)