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.
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-imageChoose your image
Paste a URL or drop a file from your computer. PNG, JPG, WebP, GIF, and BMP all work.
Pixel-art settings
Pick a block size and a smoothing mode. Output keeps the source dimensions — no shrinking.
Invert colors
Flips every RGB channel into its negative. Alpha channel passes through unchanged.
No options needed — just pick a format below and hit convert.
Mirror / flip image
Flip horizontally, vertically, or both at once.
Set your dimensions
Type a custom size, or pick a sprite preset. Lock the ratio to scale proportionally.
Pick an output format
Each format is best for a different job. Click a card to choose.
How should we resize?
Tell PIXL what to do when the input shape doesn't match your output ratio.
Pixel art & advanced›
Best for sprites and low-res art. Keeps crisp edges instead of smoothing them.
API
One endpoint, backward compatible. Omit everything and you still get a 32×32 JSON pixel grid.
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
{
"pixels": [{ "R":0, "G":0, "B":0 }, ...],
"final_size": [w, h],
"original_size": [w, h],
"resize_method": "crop",
"processing_time": 0.04
}
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
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
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
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
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