yangtb24 commited on
Commit
4c8620a
·
verified ·
1 Parent(s): cc1fa0d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -3
app.py CHANGED
@@ -8,6 +8,7 @@ import concurrent.futures
8
  import threading
9
  import base64
10
  import io
 
11
  from itertools import chain
12
  from PIL import Image
13
  from datetime import datetime
@@ -114,14 +115,32 @@ def test_model_availability(api_key, model_name):
114
  )
115
  return False
116
 
117
- def create_base64_markdown_image(image_url):
118
  try:
119
  response = requests.get(image_url, stream=True)
120
  response.raise_for_status()
121
 
122
  image_data = response.content
123
- base64_encoded = base64.b64encode(image_data).decode('utf-8')
124
- mime_type = response.headers.get('Content-Type', 'image/png')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  markdown_image_link = f"![](data:{mime_type};base64,{base64_encoded})"
126
  logging.info(f"Created base64 markdown image link.")
127
  return markdown_image_link
 
8
  import threading
9
  import base64
10
  import io
11
+ from io import BytesIO
12
  from itertools import chain
13
  from PIL import Image
14
  from datetime import datetime
 
115
  )
116
  return False
117
 
118
+ def create_base64_markdown_image(image_url, max_width=None, max_height=None):
119
  try:
120
  response = requests.get(image_url, stream=True)
121
  response.raise_for_status()
122
 
123
  image_data = response.content
124
+ image = Image.open(BytesIO(image_data))
125
+
126
+ if max_width or max_height:
127
+ if max_width and max_height:
128
+ image.thumbnail((max_width, max_height), Image.LANCZOS)
129
+ elif max_width:
130
+ wpercent = (max_width / float(image.size[0]))
131
+ hsize = int((float(image.size[1]) * float(wpercent)))
132
+ image = image.resize((max_width, hsize), Image.LANCZOS)
133
+ elif max_height:
134
+ hpercent = (max_height / float(image.size[1]))
135
+ wsize = int((float(image.size[0]) * float(hpercent)))
136
+ image = image.resize((wsize, max_height), Image.LANCZOS)
137
+
138
+ buffered = BytesIO()
139
+ image.save(buffered, format="PNG")
140
+ compressed_image_data = buffered.getvalue()
141
+
142
+ base64_encoded = base64.b64encode(compressed_image_data).decode('utf-8')
143
+ mime_type = "image/png"
144
  markdown_image_link = f"![](data:{mime_type};base64,{base64_encoded})"
145
  logging.info(f"Created base64 markdown image link.")
146
  return markdown_image_link