song7 commited on
Commit
536eec3
โ€ข
1 Parent(s): 90efebc

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image
3
+
4
+ def change_background_to_white(image):
5
+ try:
6
+ # ์ด๋ฏธ์ง€๋ฅผ RGBA๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์•ŒํŒŒ ์ฑ„๋„์„ ํ™•๋ณด
7
+ rgba_image = image.convert('RGBA')
8
+ except Exception as e:
9
+ return None, f"์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: {str(e)}"
10
+
11
+ # ๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๊ฒฝ๊ณ 
12
+ if rgba_image.width > 3000 or rgba_image.height > 3000:
13
+ return None, "๋งค์šฐ ํฐ ์ด๋ฏธ์ง€๋Š” ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์ฃผ์„ธ์š”."
14
+
15
+ # ์ƒˆ๋กœ์šด ํฐ์ƒ‰ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
16
+ white_bg = Image.new('RGBA', rgba_image.size, (255, 255, 255, 255))
17
+
18
+ # ์›๋ณธ ์ด๋ฏธ์ง€์˜ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด
19
+ pixels = rgba_image.getdata()
20
+
21
+ # ์ƒˆ๋กœ์šด ํ”ฝ์…€ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
22
+ new_pixels = []
23
+
24
+ # ๋ชจ๋“  ํ”ฝ์…€์„ ์ˆœํšŒํ•˜๋ฉฐ ํˆฌ๋ช…ํ•œ ๋ถ€๋ถ„์„ ํฐ์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ
25
+ for pixel in pixels:
26
+ if pixel[3] < 255:
27
+ new_pixels.append((255, 255, 255, 255)) # ํˆฌ๋ช…ํ•œ ๋ถ€๋ถ„์„ ํฐ์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ
28
+ else:
29
+ new_pixels.append(pixel)
30
+
31
+ # ๋ณ€๊ฒฝ๋œ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธ
32
+ white_bg.putdata(new_pixels)
33
+
34
+ # ์ตœ์ข… ์ด๋ฏธ์ง€๋ฅผ RGB๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜
35
+ final_image = white_bg.convert('RGB')
36
+
37
+ return final_image, "์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."
38
+
39
+ with gr.Blocks() as app:
40
+ gr.Markdown("## ์ด๋ฏธ์ง€์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ ํฐ์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ")
41
+ with gr.Row():
42
+ input_image = gr.Image(type="pil", label="์ด๋ฏธ์ง€ ์—…๋กœ๋“œ")
43
+ output_image = gr.Image(label="๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ๋œ ์ด๋ฏธ์ง€")
44
+ output_text = gr.Textbox(label="์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ")
45
+ input_image.change(fn=change_background_to_white, inputs=input_image, outputs=[output_image, output_text])
46
+
47
+ if __name__ == "__main__":