force icon dimensions to be square

This commit is contained in:
Bryan Gerlach
2025-02-14 07:13:57 -06:00
parent 7951080c6c
commit 995f78b6a1
2 changed files with 47 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
from django import forms
from PIL import Image
class GenerateForm(forms.Form):
#Platform
@@ -76,4 +77,28 @@ class GenerateForm(forms.Form):
xOffline = forms.BooleanField(initial=False, required=False)
hidecm = forms.BooleanField(initial=False, required=False)
statussort = forms.BooleanField(initial=False, required=False)
removeNewVersionNotif = forms.BooleanField(initial=False, required=False)
removeNewVersionNotif = forms.BooleanField(initial=False, required=False)
def clean_iconfile(self):
print("checking icon")
image = self.cleaned_data['iconfile']
try:
# Open the image using Pillow
img = Image.open(image)
# Check if the image is a PNG (optional, but good practice)
if img.format != 'PNG':
raise forms.ValidationError("Only PNG images are allowed.")
# Get image dimensions
width, height = img.size
# Check for square dimensions
if width != height:
raise forms.ValidationError("Custom App Icon dimensions must be square.")
return image
except OSError: # Handle cases where the uploaded file is not a valid image
raise forms.ValidationError("Invalid icon file.")
except Exception as e: # Catch any other image processing errors
raise forms.ValidationError(f"Error processing icon: {e}")