File size: 1,251 Bytes
ba5c720
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56c4cd8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from rembg import remove        # 匯入移除背景的函式
from PIL import Image           # 匯入 pillow 影像操作模組
import gradio as gr

def remove_bg(img, x_off, y_off, scale):
    x = int(x_off * img.width / 100)  # 計算橫向位移像數
    y = int(y_off * img.height / 100) # 計算縱向位移像數
    width = img.width - x             # 計算實際寬度
    height = img.height - y           # 計算實際高度
    size = min(width, height)         # 取寬高較短者
    img = img.crop((x, y, x + size, y + size)) # 切割正方形區域
    if scale < 100:
        size = int(size * scale / 100)# 依照指定比例縮放
        img = img.resize((size, size))
    img_nb = remove(img)              # 移除背景
    img.save('img.png')               # 儲存影像檔
    img_nb.save('img_nb.png')         # 儲存去背影像檔
    return (img, img_nb)

no_bg_if = gr.Interface(
    fn=remove_bg,
    inputs=[
        gr.Image(label='輸入影像', type='pil'),
        gr.Slider(label='橫向切割位移百分比'),
        gr.Slider(label='縱向切割位移百分比'),
        gr.Slider(label='縮放比例', value=100, step=5)],
    outputs=[gr.Gallery(label='處理後影像')]
)

no_bg_if.launch(share=True)