High-quality image resizer
Resize JPEG, PNG, WebP, or AVIF images locally in your browser. Add several
images, choose one set of output options, then resize each image when you
download it. Files are not uploaded.
Processing #
Each image keeps its aspect ratio and fits inside the maximum dimensions.
Enlarge is off by default. Changing the settings does no work until you
press Resize and download for an image.
Processing stays in your browser. Images can be at most 8192 pixels per edge,
25 megapixels, and 64 MiB compressed. Animation and source metadata are not
preserved. JPEG output replaces transparency with white.
CLI #
Resize a JPEG to fit within 1200 × 800 pixels, then encode it as lossy WebP:
npx @qip.dev/qipx qip.dev run \
image/jpeg/jpeg-to-ktx2-r8g8b8a8-srgb.wasm \
image/ktx2/ktx2-r8g8b8a8-srgb-resize-down-lanczos3.wasm \
-u width=1200 -u height=800 \
image/ktx2/ktx2-r8g8b8a8-srgb-to-webp-lossy.wasm \
-u quality=85 \
< photo.jpg > thumbnail.webp
The first run downloads the components from qip.dev. Later runs use the local
copies. Omit one dimension to derive it from the source aspect ratio.
The resize components accept and emit canonical RGBA8 sRGB image/ktx2. They
are limited to 8192 pixels per axis and 25 megapixels, and reserve 287.4 MiB of
fixed Wasm memory.
The filters decode sRGB to linear light and premultiply alpha before sampling.
They return straight-alpha sRGB bytes. Lanczos3 preserves detail well during
reduction, but can ring around sharp high-contrast edges.
Download #