AI-Assisted
By Richard C, AIL Studio
If you sell the same item on Amazon, eBay and Etsy, you end up exporting one photo three or four times: a white square for Amazon, a slightly smaller square for eBay, maybe a wide crop, and an Etsy file with more breathing room. Doing that by hand in an editor is slow and easy to get wrong. This post does it with a few ImageMagick commands, then uses ImageMagick again to check the files before upload.
The marketplace rules below are the same ones collected in How to make Amazon, Etsy, and eBay main product photos that meet the rules, with sources there. Help pages change, so trust each site's current image policy over this summary.
The targets
- Amazon main image: pure white background (RGB 255, 255, 255), product filling at least 85% of the frame, no text, logos, borders or watermarks. A 2000 × 2000 JPEG clears the zoom recommendation.
- eBay: white or neutral background recommended, about 1600 × 1600; eBay's help also says 1:1 or 16:9 photos generally look best, so a 1600 × 900 version is optional.
- Etsy: at least 2000 pixels wide and high recommended; the first photo should be horizontal or square; transparent PNGs aren't supported. Etsy also requires at least one unedited photo of the actual item against a real background, which no script can make for you.
Start from a cutout, not a raw photo
ImageMagick is not a background remover. The commands below assume you already have a PNG with a transparent background (exported from whatever editor or remover you use).
This matters more than it sounds. When I tested the same command on a JPEG shot against a light gray backdrop (RGB 246, 246, 244), the output passed the obvious check, because the canvas corners were pure white. But the gray was still there in a box around the product, since the trim step only cuts the frame down to the product's bounding box. The leftover-background check further down catches this.
Check your install
magick -version
These commands were tested with ImageMagick 7.1.2-35. Older ImageMagick 6 installs use convert instead of magick; I didn't test version 6.
One command per size
Amazon, 2000 × 2000, product at 85% (1,700 px on its longest side):
magick mug.png -trim +repage -resize 1700x1700 \
-background white -gravity center -extent 2000x2000 \
-alpha remove -alpha off -quality 92 mug-amazon-2000.jpg
What each part does:
-
-trim +repagecuts away the transparent border so the product's own edges define the size, then resets the canvas offset. -
-resize 1700x1700fits the longest side to 1,700 px and keeps the aspect ratio. This is the fill step: 1,700 of 2,000 is 85%. -
-background white -gravity center -extent 2000x2000centers the product on a 2000 × 2000 white canvas. -
-alpha remove -alpha offflattens any remaining transparency onto white, so nothing turns black on Etsy. -
-quality 92sets JPEG quality. The test files came out between about 28 KB and 79 KB, far below any upload limit, but real photos will be larger.
The other sizes only change two numbers:
| File | -resize |
-extent |
Fill |
|---|---|---|---|
| Amazon | 1700x1700 |
2000x2000 |
85% |
| eBay square | 1360x1360 |
1600x1600 |
85% |
| eBay wide | 1360x765 |
1600x900 |
85% of the height |
| Etsy | 1500x1500 |
2000x2000 |
about 75% |
The Etsy margin is a practical choice so thumbnails survive Etsy's crops, not an Etsy-published percentage.
Batch a whole folder
mkdir -p out
for f in cutouts/*.png; do
name=$(basename "$f" .png)
base=(magick "$f" -trim +repage)
"${base[@]}" -resize 1700x1700 -background white -gravity center -extent 2000x2000 -alpha remove -alpha off -quality 92 "out/${name}-amazon-2000.jpg"
"${base[@]}" -resize 1360x1360 -background white -gravity center -extent 1600x1600 -alpha remove -alpha off -quality 92 "out/${name}-ebay-1600.jpg"
"${base[@]}" -resize 1360x765 -background white -gravity center -extent 1600x900 -alpha remove -alpha off -quality 92 "out/${name}-ebay-1600x900.jpg"
"${base[@]}" -resize 1500x1500 -background white -gravity center -extent 2000x2000 -alpha remove -alpha off -quality 92 "out/${name}-etsy-2000.jpg"
done
Four checks before you upload
1. Size.
magick identify -format '%f %wx%h %b\n' out/*.jpg
2. Corner pixel is pure white.
magick out/mug-amazon-2000.jpg -format '%[pixel:p{0,0}]\n' info:
You want srgb(255,255,255). Anything like srgb(250,250,250) fails Amazon's main-image rule.
3. No leftover background. This is the check the gray-backdrop test needed. It reports the percentage of pixels that are almost white but not quite:
magick out/mug-amazon-2000.jpg -colorspace Gray \
-fx '(u>0.93 && u<0.995)?1:0' -format '%[fx:mean*100]\n' info:
On my test files (EXAMPLE DATA: two flat shapes drawn as transparent PNGs, not real products), the clean cutouts scored 0.03% and 0.16%, which is just the soft edge of the shape. The file made from the gray-backdrop JPEG scored 17.68%. Re-running the Amazon command on that same JPEG reproduced 17.68% both times; a previously saved output of the test measures 15.28%, which that command does not reproduce. My rule of thumb, which is an opinion and not a marketplace rule: above about 1%, open the file and look for a halo or a box of off-white around the product.
4. Product fill.
magick out/mug-amazon-2000.jpg -fuzz 2% -trim -format '%wx%h\n' info:
That prints the size of the non-white area. My Amazon test file printed 1700x1417, so the longest side is 1,700 of 2,000 pixels: 85%.
What this does not do
-
It doesn't fix a small source.
-resize 1700x1700will enlarge a 600-pixel cutout, and the result can look soft. Writing'1700x1700>'only shrinks, never enlarges. In my test that left the product at about 604 px, roughly 30% fill, which no longer meets Amazon's 85% rule. The real fix is a bigger original photo. - It doesn't add shadows, and that's deliberate. A drop shadow tints pixels Amazon wants at 255, 255, 255; keep shadows for secondary images.
- It doesn't cover Etsy's real-photo rule. Upload an unedited photo of the actual item in a real setting as well.
If you'd rather not run commands, Listing Photo Set on Poe will place a product photo on a pure white canvas and return the common marketplace sizes; you try it there and spend Poe points to run it.
By Richard C, AIL Studio
Top comments (0)