Product Shadow for Etsy/Amazon Listings — Exact Angle, Blur & Opacity
Drop a background-removed product PNG and set the shadow yourself — exact angle, blur, opacity, distance and color — to ground it for an Etsy or Amazon listing photo. This is a precise manual tool, not an AI auto-shadow: you control every value and see the result live. Give your product some ground to stand on. ✵
Shadow type
For live speed the preview may use a lower resolution — the download is always rendered at your image's full resolution.
Upload a transparent product PNG to reveal the shadow controls.
Worked example: a 2000 px candle cut-out on the default Contact shadow
Say you drop in a 2000 × 2000 px candle cut-out whose opaque pixels run from (420, 260) to (1579, 1739) — a silhouette 1160 px wide and 1480 px tall, with its foot resting at y = 1740. You touch nothing: Contact, opacity 35 %, blur 18 px, angle 0°, distance 12 px, spread 0 px, ink #1C1913 on white. Here is every number the tool derives from that, and why each one keeps the shadow from looking stuck on afterwards.
- Nothing is downscaled. The working buffer is capped at 3200 px on the long edge and 2000 is under that, so the exported render runs at the full original 2000 × 2000 px — no resampling softness sneaks in.
- The ground line is found, not guessed. One pass over the alpha channel finds the lowest row with a visible pixel: y = 1740. Everything below is built from that line, which is why the shadow starts exactly where the wax meets the table rather than at the bottom of the PNG.
- Contact squashes to 16 % of the shape's height. 1480 px × 0.16 = 236.8 px. A real contact shadow is the object's footprint seen almost edge-on, so it has to be a shallow puddle — a full-height copy tipped over is the single most common giveaway of a fake shadow.
- Distance resolves to pure vertical. At 0° the offset is sin(0) × 12 = 0 px sideways and cos(0) × 12 = 12 px down. The puddle therefore occupies y 1515.2 to y 1752.0 — it peeks out 12 px past the foot, the way a shadow does when the light is roughly overhead.
- Blur is 0.9 % of the frame. 18 px across a 2000 px image is soft enough to kill the cut-out's hard vector edge but tight enough that the pixels right under the base stay dense — a shadow that is uniformly soft everywhere reads as a blurred sticker, not as contact.
- Opacity never reaches black. The ink swatch is #1C1913 (R = 28) and the layer is drawn at 0.35, so the darkest pixel over white lands at 0.35 × 28 + 0.65 × 255 = 175.55 of 255 — a mid grey. Marketplace product shots are lit; a 0-value black puddle is the second giveaway.
- The canvas grows to protect the blur. Padding is ceil(18) + 4 = 22 px on every side, so the blurred tail is never clipped flat against the edge. 2000 + 22 + 22 = 2044 px square.
- The live preview is the same shadow, scaled. The interactive buffer caps at 820 px, giving a scale of 820 ÷ 2000 = 0.41, and every distance is multiplied by it — blur becomes 7.38 px and distance 4.92 px. The proportions you judge on screen are the proportions you download.
The three shadow types as lighting decisions
Contact, Mirror and Cast are not three intensities of the same effect. Each applies a different transform to the silhouette, and each therefore describes a different room. Picking the wrong one matters more than getting the sliders wrong: a shopper who could not name a single lighting modifier will still feel that a bottle is floating.
Contact — diffuse light from almost directly overhead
The silhouette is scaled to 0.16 of its height and pinned so the squashed copy's bottom sits on the ground line, then offset by sin(angle) × distance sideways and cos(angle) × distance downward. That cosine is the interesting part: at the default 0° the whole 12 px of distance goes straight down, and as you swing the angle out toward ±90° the downward component shrinks to nothing while the sideways one grows — the puddle slides out from under the product rather than stretching away from it. Sixteen per cent is deliberately shallow: it is the footprint of the object seen almost edge-on, which is what a high, broad key light gives you, and it suits anything standing flat on a surface — candles, jars, mugs, tins, folded textiles. No fade is applied to a contact shadow, so opacity alone governs its density.
Mirror — a polished surface, not a light at all
Mirror flips the silhouette exactly about the ground line (a vertical scale of −1 with the origin moved to twice the baseline) and pushes it down by the distance value to open a gap between product and reflection. Angle is ignored — the tool dims and disables that slider when Mirror is selected, because a vertical reflection does not have a light direction to argue about. A vertical alpha gradient runs from 0.9 at the ground line to 0 at the far end of the flipped copy, so the reflection dissolves rather than stopping. This is a decision about the floor, not the lamp: it says glass, acrylic or lacquer, which is right for jewellery, phone cases, watches and glossy packaging, and is quietly wrong for anything you would photograph on paper or linen.
Cast — a single directional source, low and to one side
Cast shears the silhouette by (angle ÷ 90) × 1.6 and projects it below the baseline at 0.9 of its height, so at the extremes of the angle slider the shadow leans by 1.6 times the object's height — a long afternoon shadow — while the vertical foreshortening stays constant. Its fade runs from 0.92 at the base to 0.14 at the tip across that projected length, which is why a cast shadow stays dense where it meets the product and thins as it travels, the way a real penumbra widens with distance from the object. Use it when you want the shot to feel like it happened somewhere: boxes, bottles, shoes, tools, anything tall enough to throw a shadow worth seeing. On flat items a long lean reads as a mistake rather than as light.
What the sliders do across all three
Spread dilates the silhouette before blurring by drawing it sixteen times around a circle of the spread radius plus once in place, which fattens the shape outward without moving it. Blur is applied once, to the finished shadow layer, and the output canvas is grown by ceil(blur) + 4 px on every side so the soft tail is never clipped flat against the edge. The one thing worth internalising: blur, distance and spread are absolute pixels, not percentages of your image. Nothing is scaled to image size except the live preview, whose buffer caps at 820 px and multiplies every distance by that same factor so what you judge on screen is what you download. The working buffer itself caps at 3,200 px on the long edge, so a 6,000 px source is downscaled before any of this happens.
When a generated shadow reads as fake
The shadow disagrees with the photograph
Your product was lit by something before you ever opened this page, and that light left highlights and its own soft shading baked into the pixels. The Angle slider moves the shadow; it cannot move those. Find the brightest specular on the product — the sheen on a lid, the hot edge of a bottle — and put the shadow on the opposite side. If the highlight is centred and even, the photograph was lit from the front or from overhead, and Contact at or near 0° is the only honest answer; a long Cast shadow on a flatly-lit cut-out is the version that makes people squint without knowing why.
One blur radius for a base that isn't flat
The blur is applied to the whole shadow layer in a single pass, so the shadow is exactly as soft where the object touches the surface as it is at its far edge. Real contact shadows are not: they are dark and tight in the millimetre where object meets table and open up quickly from there. For a flat base — a tin, a candle, a box — that uniformity is barely visible if you keep the distance small. For an irregular base such as a crumpled pouch, a cluster of pens or a shoe on its side, it is the giveaway, because the eye expects the darkness to vary along the contact line. Lower blur and a distance near zero is a better compromise there than more of either.
An entire catalogue lit identically
Replace image keeps your slider positions, which is a genuine convenience when you are working through a batch and a trap when you publish the result. Twenty listing photos with the same angle, the same 35 % opacity and the same 18 px blur do not look consistent in a search grid; they look generated, because no real shoot produces twenty identically-placed shadows across objects of different heights. Move the angle a few degrees between products and let taller items carry slightly longer shadows.
Mixed source resolutions, one set of numbers
Because the sliders are absolute pixels, the same settings mean different things on different files. Eighteen pixels of blur is 2 % of a 900 px cut-out and 0.56 % of a 3,200 px one — a smudge on the first, a hairline on the second. If you like how 18 px looks on a 2,000 px image, that is 0.9 % of the frame, and matching it means roughly 8 px at 900 px and 29 px at 3,200 px. Normalise your cut-outs to one size before you start and the problem disappears.
Amazon main images are stricter than sellers expect
Amazon's published standards for the MAIN image call for a pure white background at RGB 255, 255, 255 with the product filling roughly 85–100 % of the frame, and no text, graphics, logos or watermarks (Seller Central guidance, checked July 2026). Two things follow. The tool's white swatch is #FFFFFF, which is exactly that value, so the background itself is compliant wherever the shadow does not reach — but a shadow is by definition non-white pixels sitting in that frame, and Amazon's published wording addresses backgrounds and graphics rather than settling the question of shadows either way. Second, and more concretely: the export canvas is the union of the product and its shadow, grown by ceil(blur) + 4 px on every side, so the finished PNG is always larger than your cut-out and the product occupies a smaller share of it than it did before. If a shadowed shot is headed for a main image slot, re-crop it to bring the product back up to Amazon's frame-fill guidance; secondary images are where a cast shadow earns its keep with far less to lose.
Frequently asked questions
How do I add a shadow to my product photo?
Upload a PNG that already has its background removed (a transparent cut-out). The tool reads the transparent edges to build a matching shadow, then you fine-tune opacity, blur, angle and color and download the finished shot. Works best with clean, background-removed images.
Is my image uploaded anywhere?
No. Your photo never becomes a network request. The browser turns the dropped file into a local blob URL, the alpha scan that finds the ground line reads it back with getImageData, every shadow layer is composited in an offscreen <canvas> in this tab's memory, and the Download button hands you the result through canvas.toBlob — there is no upload step anywhere in that chain. Like every page on this site it does serve Google's ad script, but the ad code is never given your image.
What's the difference between this and the Sticker Border Maker?
The Sticker Border Maker adds a white outline to turn art into a die-cut sticker — how wide that outline should be is a printing question rather than a matter of taste, and the die-cut sizes, bleed and border measurements printers expect gives you the 2–4 mm border and 1/8″ bleed to work to. This tool adds a realistic cast, contact or reflection shadow and a background to make a product look grounded and three-dimensional for listings and thumbnails. Use them together if you want both.