fix non-resized images
This commit is contained in:
@@ -225,37 +225,38 @@ def update_github_run(request):
|
||||
GithubRun.objects.filter(Q(uuid=myuuid)).update(status=mystatus)
|
||||
return HttpResponse('')
|
||||
|
||||
def resize_and_encode_icon(iconfile):
|
||||
def resize_and_encode_icon(imagefile):
|
||||
try:
|
||||
with io.BytesIO() as image_buffer:
|
||||
for chunk in iconfile.chunks():
|
||||
for chunk in imagefile.chunks():
|
||||
image_buffer.write(chunk)
|
||||
image_buffer.seek(0)
|
||||
|
||||
iconimg = Image.open(image_buffer)
|
||||
iconimgcopy = iconimg.copy()
|
||||
img = Image.open(image_buffer)
|
||||
imgcopy = img.copy()
|
||||
except (IOError, OSError):
|
||||
raise ValueError("Uploaded file is not a valid image format.")
|
||||
|
||||
# Check if resizing is necessary
|
||||
if iconimg.size[0] <= 256:
|
||||
return base64.b64encode(iconfile.read())
|
||||
if img.size[0] <= 256:
|
||||
return_image = ContentFile(imgcopy.read(), name=imagefile.name)
|
||||
return base64.b64encode(return_image.read())
|
||||
|
||||
# Calculate resized height based on aspect ratio
|
||||
wpercent = (256 / float(iconimg.size[0]))
|
||||
hsize = int((float(iconimg.size[1]) * float(wpercent)))
|
||||
wpercent = (256 / float(img.size[0]))
|
||||
hsize = int((float(img.size[1]) * float(wpercent)))
|
||||
|
||||
# Resize the image while maintaining aspect ratio using LANCZOS resampling
|
||||
iconimgcopy = iconimgcopy.resize((256, hsize), Image.Resampling.LANCZOS)
|
||||
iconimgcopy = imgcopy.resize((256, hsize), Image.Resampling.LANCZOS)
|
||||
|
||||
with io.BytesIO() as resized_image_buffer:
|
||||
iconimgcopy.save(resized_image_buffer, format=iconfile.content_type.split('/')[1])
|
||||
iconimgcopy.save(resized_image_buffer, format=imagefile.content_type.split('/')[1])
|
||||
resized_image_buffer.seek(0)
|
||||
|
||||
resized_iconfile = ContentFile(resized_image_buffer.read(), name=iconfile.name)
|
||||
resized_imagefile = ContentFile(resized_image_buffer.read(), name=imagefile.name)
|
||||
|
||||
# Return the Base64 encoded representation of the resized image
|
||||
return base64.b64encode(resized_iconfile.read())
|
||||
return base64.b64encode(resized_imagefile.read())
|
||||
|
||||
#the following is used when accessed from an external source, like the rustdesk api server
|
||||
def startgh(request):
|
||||
|
Reference in New Issue
Block a user