seawolf2357 commited on
Commit
f78f277
·
verified ·
1 Parent(s): 78392bc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -17
app.py CHANGED
@@ -1,6 +1,12 @@
1
  import requests
2
  import gradio as gr
3
- import os
 
 
 
 
 
 
4
 
5
  # Pexels API 키를 여기에 입력하세요
6
  API_KEY = os.getenv('API_KEY')
@@ -8,35 +14,33 @@ API_URL = 'https://api.pexels.com/v1/search'
8
 
9
  def search_images(keyword):
10
  headers = {'Authorization': API_KEY}
11
- params = {'query': keyword, 'per_page': 8} # per_page 값을 8설정하여 8개의 이미지를 검색
12
  response = requests.get(API_URL, headers=headers, params=params)
13
 
14
  if response.status_code == 200 and response.json()['photos']:
15
  photos = response.json()['photos']
16
- result_html = ""
17
  for photo in photos:
18
  image_url = photo['src']['original']
19
- photographer = photo['photographer']
20
- photographer_url = photo['photographer_url']
21
- photo_url = photo['url']
22
-
23
- # 이미지와 크레딧을 HTML 형식으로 추가
24
- result_html += f"""
25
- <div style='margin-bottom: 20px;'>
26
- <img src='{image_url}' width='100%' />
27
- <p>This <a href='{photo_url}'>Photo</a> was taken by <a href='{photographer_url}'>{photographer}</a> on <a href='https://www.pexels.com'>Pexels</a>.</p>
28
- </div>
29
- """
30
- return result_html
31
  else:
32
  return "검색 결과가 없습니다."
33
 
34
  interface = gr.Interface(
35
  fn=search_images,
36
  inputs=gr.Textbox(lines=2, placeholder="검색할 이미지 키워드를 입력하세요"),
37
- outputs=gr.HTML(label="검색 결과"),
38
  title="Pexels 이미지 검색기",
39
- description="Pexels에서 키워드에 맞는 이미지를 검색하고, 해당 이미지의 출처와 작가에 대한 정보를 제공합니다."
40
  )
41
 
42
  if __name__ == "__main__":
 
1
  import requests
2
  import gradio as gr
3
+ import os
4
+ import imageio
5
+ import numpy as np
6
+ from PIL import Image
7
+ import requests
8
+ from io import BytesIO
9
+ import tempfile
10
 
11
  # Pexels API 키를 여기에 입력하세요
12
  API_KEY = os.getenv('API_KEY')
 
14
 
15
  def search_images(keyword):
16
  headers = {'Authorization': API_KEY}
17
+ params = {'query': keyword, 'per_page': 5} # per_page 값을 5설정
18
  response = requests.get(API_URL, headers=headers, params=params)
19
 
20
  if response.status_code == 200 and response.json()['photos']:
21
  photos = response.json()['photos']
22
+ images = []
23
  for photo in photos:
24
  image_url = photo['src']['original']
25
+ response = requests.get(image_url)
26
+ img = Image.open(BytesIO(response.content))
27
+ images.append(img)
28
+
29
+ # 이미지를 영상으로 합치기
30
+ with tempfile.NamedTemporaryFile(delete=False, suffix='.mp4') as tmpfile:
31
+ with imageio.get_writer(tmpfile.name, fps=0.5) as video: # 2초 간격
32
+ for img in images:
33
+ video.append_data(np.array(img))
34
+ return tmpfile.name # 임시 파일의 경로 반환
 
 
35
  else:
36
  return "검색 결과가 없습니다."
37
 
38
  interface = gr.Interface(
39
  fn=search_images,
40
  inputs=gr.Textbox(lines=2, placeholder="검색할 이미지 키워드를 입력하세요"),
41
+ outputs=gr.Video(label="검색 결과"),
42
  title="Pexels 이미지 검색기",
43
+ description="Pexels에서 키워드에 맞는 이미지를 검색하고, 해당 이미지를 영상으로 변환합니다."
44
  )
45
 
46
  if __name__ == "__main__":