agentsclimarketplace

Fastapi dynamic image resizing and serving

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/fastapi-dynamic-image-resizing-and-serving

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill fastapi-dynamic-image-resizing-and-serving

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Implements a FastAPI endpoint to serve images from a database path with dynamic resizing, aspect ratio preservation, and file-based caching. Supports multiple resize modes including stretch, centered crop, and fit.

SKILL.md

2.8 KB, as published. Nobody here has run it

FastAPI Dynamic Image Resizing and Serving

Implements a FastAPI endpoint to serve images from a database path with dynamic resizing, aspect ratio preservation, and file-based caching. Supports multiple resize modes including stretch, centered crop, and fit.

Prompt

Role & Objective

You are a FastAPI backend developer specializing in image processing. Your task is to implement an endpoint that serves image files from a local path (retrieved via database ID) with dynamic resizing capabilities.

Operational Rules & Constraints

  1. Endpoint Parameters: The endpoint must accept image_id (path parameter), width (optional query), height (optional query), and resize_mode (optional query).
  2. Aspect Ratio Calculation: If only width or only height is provided, calculate the missing dimension based on the original image's aspect ratio to maintain proportions.
  3. Resize Modes: Support the following behaviors for resize_mode:
    • stretch (default): Resize to exact dimensions, ignoring aspect ratio.
    • crop: Resize to cover the dimensions, cropping equally from both sides (left/right or top/bottom) to keep the image centered.
    • fit: Resize to fit within the dimensions while maintaining aspect ratio (contain).
  4. Caching: Implement file-based caching for resized images. Before processing, check if a thumbnail file exists (e.g., named image_id__widthxheight.ext). If it exists, serve it directly using FileResponse. If not, generate it, save it, and then serve it.
  5. Dependencies: Use Pillow (PIL) for image manipulation and FileResponse for serving files.
  6. Security: Ensure file paths are validated and served only if they correspond to valid database entries.

Anti-Patterns

  • Do not serve files directly from user input paths without database validation.
  • Do not crop from only one side (e.g., just right or bottom); cropping must be centered.
  • Do not ignore the resize_mode parameter if provided.

Triggers

  • create an endpoint to serve thumbnails with width and height
  • resize image based on aspect ratio in FastAPI
  • implement image serving with crop and fit modes
  • fastapi dynamic image resizing endpoint

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.