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)
|
GithubRun.objects.filter(Q(uuid=myuuid)).update(status=mystatus)
|
||||||
return HttpResponse('')
|
return HttpResponse('')
|
||||||
|
|
||||||
def resize_and_encode_icon(iconfile):
|
def resize_and_encode_icon(imagefile):
|
||||||
try:
|
try:
|
||||||
with io.BytesIO() as image_buffer:
|
with io.BytesIO() as image_buffer:
|
||||||
for chunk in iconfile.chunks():
|
for chunk in imagefile.chunks():
|
||||||
image_buffer.write(chunk)
|
image_buffer.write(chunk)
|
||||||
image_buffer.seek(0)
|
image_buffer.seek(0)
|
||||||
|
|
||||||
iconimg = Image.open(image_buffer)
|
img = Image.open(image_buffer)
|
||||||
iconimgcopy = iconimg.copy()
|
imgcopy = img.copy()
|
||||||
except (IOError, OSError):
|
except (IOError, OSError):
|
||||||
raise ValueError("Uploaded file is not a valid image format.")
|
raise ValueError("Uploaded file is not a valid image format.")
|
||||||
|
|
||||||
# Check if resizing is necessary
|
# Check if resizing is necessary
|
||||||
if iconimg.size[0] <= 256:
|
if img.size[0] <= 256:
|
||||||
return base64.b64encode(iconfile.read())
|
return_image = ContentFile(imgcopy.read(), name=imagefile.name)
|
||||||
|
return base64.b64encode(return_image.read())
|
||||||
|
|
||||||
# Calculate resized height based on aspect ratio
|
# Calculate resized height based on aspect ratio
|
||||||
wpercent = (256 / float(iconimg.size[0]))
|
wpercent = (256 / float(img.size[0]))
|
||||||
hsize = int((float(iconimg.size[1]) * float(wpercent)))
|
hsize = int((float(img.size[1]) * float(wpercent)))
|
||||||
|
|
||||||
# Resize the image while maintaining aspect ratio using LANCZOS resampling
|
# 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:
|
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_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 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
|
#the following is used when accessed from an external source, like the rustdesk api server
|
||||||
def startgh(request):
|
def startgh(request):
|
||||||
|
Reference in New Issue
Block a user