resize · crop · reformat · pixel grids

Any image in.
Any image out.

Drop a URL or upload a file, crop it however you like, pick a size and a format, and ship it. Need a 32×32 sprite or a 2048-wide WebP? Same tool.

All-in-one image tool

Resize, crop, and convert any image

Pick a tool on the left, or use them all in one go. Same engine, same file. No upload required twice.

Converter

/convert-image
Source

Choose your image

Paste a URL or drop a file from your computer. PNG, JPG, WebP, GIF, and BMP all work.

Drop, click, or paste image PNG · JPG · WebP · GIF · BMP · Ctrl/Cmd+V works anywhere

API

One endpoint, backward compatible. Omit everything and you still get a 32×32 JSON pixel grid.

GET / POST /convert-image
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
width=1..4096            default 32
height=1..4096           default 32
format=png|jpeg|webp|bmp|gif|json   default json
mode=crop|stretch|fit    default crop
simple=true|false        nearest-neighbour pixel mode
crop_x,crop_y,crop_w,crop_h     pre-crop in source pixels
200 image/<format> · or application/json
{
  "pixels": [{ "R":0, "G":0, "B":0 }, ...],
  "final_size": [w, h],
  "original_size": [w, h],
  "resize_method": "crop",
  "processing_time": 0.04
}
GET / POST /api/image/pixelate
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
block=2..128             block size in source pixels, default 10
mode=simple|og          simple = nearest neighbour (crisp), og = averaged (smooth)
format=png|jpeg|webp|bmp|gif   default png
200 image/<format> \u00b7 output keeps source dimensions
GET / POST /api/image/invert
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
format=png|jpeg|webp|bmp|gif   default png \u00b7 alpha preserved
GET / POST /api/image/mirror
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
axis=h|v|both           default h \u00b7 horizontal / vertical / both
format=png|jpeg|webp|bmp|gif   default png
GET / POST /api/image/rotate
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
angle=-360..360         degrees, positive = clockwise, default 0
expand=true|false        expand canvas to fit rotated image, default true
format=png|jpeg|webp|bmp|gif   default png
GET / POST /api/image/format
url=<image url>          required when no file uploaded
file=<multipart upload>   POST alternative to url
format=png|jpeg|webp|bmp|gif   target format, default png
quality=1..100          jpeg / webp quality, default 92