A simple area where users drop "broken" or heavy images.
In many "Anvil" projects (or similar low-code platforms), developers often upload raw photos from cameras that are 5MB+. This feature ensures the app stays fast and responsive by "fixing" those assets automatically. A simple area where users drop "broken" or heavy images
This feature automatically repairs broken image links, optimizes file sizes for web performance, and ensures color consistency across different display types. 1. Key Functionalities the "fixed" file size
A slider showing the original file size vs. the "fixed" file size. Status Indicator: "Fixed," "Optimized," or "Repaired." Why this is useful: max 1920px) max_size = (1920
# Server Module import anvil.media from PIL import Image import io @anvil.server.callable def fix_image_asset(file): # 1. Load the uploaded media img_bytes = file.get_bytes() img = Image.open(io.BytesIO(img_bytes)) # 2. The "Fix": Resize if too large (e.g., max 1920px) max_size = (1920, 1080) img.thumbnail(max_size, Image.Resampling.LANCZOS) # 3. Convert to WebP for optimization out_io = io.BytesIO() img.save(out_io, format="WEBP", quality=80) # 4. Return as Anvil Media object return anvil.BlobMedia("image/webp", out_io.getvalue(), name="fixed_image.webp") Use code with caution. 3. UI/UX Component
Scales oversized images down to the maximum display size needed in your app to improve load times.