# Retro Pixel Art Batch Processor > Apply one retro palette and effect recipe to a ZIP of images. Convert up to eight images into consistent pixel-art assets with shared colors, dithering and adjustments. Download PNGs, editable pixel projects and the resolved recipe in one ZIP. Part of usefulweb.app (https://usefulweb.app/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://fliplineretrobatch.usefulweb.app/ (interactive tool at https://fliplineretrobatch.usefulweb.app/tool) - JSON API: POST https://fliplineretrobatch.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://fliplineretrobatch.usefulweb.app/api/v1/tool) - OpenAPI: https://fliplineretrobatch.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://fliplineretrobatch.usefulweb.app/mcp - tool `flipline_retro_batch` ## Inputs - images (file, required): ZIP of PNG, JPEG or WebP images - width (integer): Pixel canvas width - height (integer): Pixel canvas height - colors (integer): Automatic palette colors - palette (textarea): Custom HEX, GPL or JASC-PAL palette (optional) - alpha (integer): Alpha threshold - scale (integer): PNG integer scale - fit (select): Image fit - dither (select): Dithering - strength (number): Dither strength (%) - brightness (number): Brightness - contrast (number): Contrast - gamma (number): Gamma - saturation (number): Saturation (%) - red (number): Red shift (RGB units) - green (number): Green shift (RGB units) - blue (number): Blue shift (RGB units) ## Method - Auto-orient and convert the source to sRGB, then sample native output pixels using nearest-neighbor fit, centered fill or stretch. Images are limited to 4 MB and 2 MP. - Apply RGB offsets, brightness and contrast, gamma, then saturation. Palette matching uses squared sRGB distance with first-entry tie-breaking. Automatic palettes select frequent adjusted colors. - Ordered dithering uses a 4 × 4 Bayer bias. Serpentine Floyd–Steinberg distributes errors with 7/16, 3/16, 5/16 and 1/16 weights; transparent pixels neither receive nor spread errors. Strength zero equals no dithering. - Alpha below the threshold becomes transparent. PNG integer scaling repeats pixels exactly. Dithering runs on native pixels and does not change with preview zoom or export scale. - ZIP limits: 16 entries, eight supported images, 4 MB per entry, 16 MB uncompressed input and 8 MP of decoded images total. Unsupported files are reported. ZIP order defines the first image. - If the palette is automatic, derive it from the first adjusted image and reuse it for every image. The recipe stored in the output resolves the palette to exact HEX values. Output names have numbered prefixes to avoid collisions.