Resize, optimize, transform, and deliver images on-the-fly via URL parameters. WebP, AVIF, effects, text generation. Cached after the first request, and yours to purge whenever the original changes. No signup, no API keys, unlimited requests.
// Resize and convert to WebP
https://images.hsingh.app/?url=https://example.com/photo.jpg&w=800&output=webp
// Generate OG image with text
https://images.hsingh.app/?text=Hello%20World&w=1200&h=630&bg=%23FFE500
Fetch and optimize any remote image. Resize, compress, convert formats on the fly. Cached on disk, served with ETags.
Convert to WebP, AVIF, PNG, JPEG, GIF, TIFF. Serve modern formats for faster loading.
Smart resizing with multiple fit modes. Cover, contain, fill, or fit inside bounds.
Generate dynamic text images for social sharing. Multiline, shadows, gradients.
Grayscale, sepia, blur, sharpen, brightness, contrast, saturation adjustments.
Flip, rotate, crop, trim, focal-point and smart crops, circle and rounded masks, watermarks.
?text=HELLO&bg=%23FFE500
?txtShadow=2,2,0,%23fff
?txtStroke=%23fff&txtStrokeWidth=2
?text=MULTI%0ALINE
url Remote image URLtext Text to renderw Width (px)h Height (px)fit cover, contain, filldpr Device pixel ratiooutput jpg, png, webp, avif, autoq Quality (1-100)lossless true (webp/avif)strip false keeps EXIF/ICCencoding base64filename Download namegrayscale true/falsesepia true/falseblur 0.3-1000brightness Multipliercon Contrastflip Vertical flipflop Horizontal flipro Rotation anglecrop x,y,w,htxtColor Text colorfontSize Size (px)txtShadow x,y,blur,colortxtStroke Stroke colorwrap Auto-wrapa top, left, attention, entropy…fpx / fpy Focal point (0–1)trim Trim uniform borderswe Never enlargemask circle, ellipse, roundedmbg Fill behind the maskol Watermark image URLolw / olg Watermark size %, positionurl + text Text on an imagebg Solid colorgradient linear/radial,...roundedCorners true/falsecornerRadius Radius (px)
Every image is cached after the first request — check the X-Cache
response header for HIT or MISS. Changed the picture behind
a URL? Drop it from the cache yourself. No key, no signup.
// Drop every size and format of one image
curl -X DELETE "https://images.hsingh.app/cache?url=https://example.com/photo.jpg"
// Or name the transform to drop just that one variant
curl -X DELETE "https://images.hsingh.app/cache?url=https://example.com/photo.jpg&w=200&output=webp"
Paste the original image URL — the one you passed to
?url= — not the optimized link. Limited to 20 purges an hour
per IP, with a 60 second cooldown per image.
No signup. No API keys. No limits. Just use the URL.