meebox commited on
Commit
ba5c720
·
1 Parent(s): 7c86681

first commit

Browse files
Files changed (3) hide show
  1. .vscode/settings.json +3 -0
  2. app.py +30 -0
  3. requirements.txt +1 -0
.vscode/settings.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "python.languageServer": "None"
3
+ }
app.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from rembg import remove # 匯入移除背景的函式
2
+ from PIL import Image # 匯入 pillow 影像操作模組
3
+ import gradio as gr
4
+
5
+ def remove_bg(img, x_off, y_off, scale):
6
+ x = int(x_off * img.width / 100) # 計算橫向位移像數
7
+ y = int(y_off * img.height / 100) # 計算縱向位移像數
8
+ width = img.width - x # 計算實際寬度
9
+ height = img.height - y # 計算實際高度
10
+ size = min(width, height) # 取寬高較短者
11
+ img = img.crop((x, y, x + size, y + size)) # 切割正方形區域
12
+ if scale < 100:
13
+ size = int(size * scale / 100)# 依照指定比例縮放
14
+ img = img.resize((size, size))
15
+ img_nb = remove(img) # 移除背景
16
+ img.save('img.png') # 儲存影像檔
17
+ img_nb.save('img_nb.png') # 儲存去背影像檔
18
+ return (img, img_nb)
19
+
20
+ no_bg_if = gr.Interface(
21
+ fn=remove_bg,
22
+ inputs=[
23
+ gr.Image(label='輸入影像', type='pil'),
24
+ gr.Slider(label='橫向切割位移百分比'),
25
+ gr.Slider(label='縱向切割位移百分比'),
26
+ gr.Slider(label='縮放比例', value=100, step=5)],
27
+ outputs=[gr.Gallery(label='處理後影像')]
28
+ )
29
+
30
+ no_bg_if.launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ rembg