Crop Image

Crop an image to an exact pixel rectangle, keeping its original format — free and watermark-free.

Enter the crop box in pixels, measured from the top-left corner.

The result downloads automatically when ready.

100% free No signup No watermark Files processed in memory, never stored

How it works

  1. Upload. Choose the image to crop (up to 25 MB).
  2. Set the area. Enter X and Y for the top-left corner and the width and height of the crop, all in pixels.
  3. Download. The cropped image downloads automatically in its original format.

About this tool

Crop an image down to exactly the rectangle you want by entering the area in pixels — the X and Y of the top-left corner and the width and height. It's precise rather than guesswork: ideal for trimming a fixed margin, cutting a banner to an exact size, or removing an unwanted edge. The crop keeps the original file format, so a PNG stays a PNG and a JPG stays a JPG, and pixels are copied untouched so nothing is re-compressed. No watermark, no signup, processed in memory and discarded.

What people use it for

  • Trim a fixed margin or border off a screenshot
  • Cut an image to an exact banner or thumbnail size
  • Remove an unwanted edge or object at the side
  • Square-crop a photo to precise dimensions

Developer API

Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.

POST https://best.free/api/tools/image-crop/
Parameter Example Required Notes
file (file) photo.jpg Yes Any common image, ≤25 MB.
x 0 Yes Left edge in px.
y 0 Yes Top edge in px.
width 400 Yes Crop width in px.
height 300 Yes Crop height in px.
curl -X POST https://best.free/api/tools/image-crop/ \
  -F 'file=@photo.jpg' \
  -F 'x=0' \
  -F 'y=0' \
  -F 'width=400' \
  -F 'height=300' \
  -o cropped.png
import requests

files = {"file": open("photo.jpg", "rb")}
data = {"x": 0, "y": 0, "width": 400, "height": 300}

r = requests.post("https://best.free/api/tools/image-crop/", files=files, data=data)
with open("cropped.png", "wb") as out:
    out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("x", 0);
fd.append("y", 0);
fd.append("width", 400);
fd.append("height", 300);

const r = await fetch("https://best.free/api/tools/image-crop/", { method: "POST", body: fd });
const blob = await r.blob();  // the cropped.png

Response: The cropped image (same format).

Frequently asked questions

Enter four numbers in pixels: X and Y for the top-left corner of the crop, then the width and height. The area is measured from the top-left of the image.

The crop is clamped to the image edges, so you get the overlapping area rather than an error. If the box is entirely outside the image you are asked to adjust it.

The same format as the original — a PNG stays PNG, a JPG stays JPG — so it drops straight into wherever the original was used.

No. Cropping copies the existing pixels of the selected area; nothing is re-compressed or scaled, so quality is identical to the source.

No. The cropped image contains only your pixels, with nothing stamped on it, and no account is required.

Up to 25 MB per file on the free tier.

No. It is cropped in memory and discarded the instant the result is returned.

Yes. POST your file as multipart/form-data to /api/tools/image-crop/ and the processed file streams straight back — the same engine the web tool uses, so results are identical. It is rate-limited per IP like the web version and needs no signup; API keys for higher limits are coming. See the API section above for ready-to-run curl, Python and JavaScript examples.
Rate this page
5.0/5 (0)

What could we improve? Your feedback helps us fix issues.