Skip to main content
JPG JoinerJPG Joiner
Identity files stay on your device

Merge Photo and Signature into One JPG

Application forms that want a photo and a specimen signature in a single image also tend to cap the file at 20 or 50 KB. This tool handles both at once: merge photo and signature, set exact pixel dimensions, hold a byte ceiling, and see what passed before you download.

Add photo
Add signature
No Upload
Runs in Browser
No Login
No Watermark
Free Forever

What the two layouts produce.

Both diagrams show the same two source files arranged into one output canvas. Grey is the photo region, which crops to fill. White is the signature region, which scales the whole signature to fit inside it.

Signature below photo. The default, and what most application forms expect. Photo and signature in one image with the strip running full width across the bottom, which gives long signatures the most horizontal room.
Signature beside photo. Use this for landscape output or when a form shows the two fields on one row. The narrower column forces the signature smaller, so raise the space slider above 30% if the strokes thin out.

How to merge your photo and signature.

01

Add both files

Photo on the left, signature on the right. Each slot reports the source dimensions so you can catch a 48x48 thumbnail before you waste time on it. A 300 dpi flatbed scan of the signature beats a phone photo, mostly because there is no shadow gradient running across the paper.

02

Pick a layout and frame the photo

Stacked or side by side, then set the signature share. Open photo framing to zoom and shift the photo inside its box. This matters when your source is a wide phone picture and the output box is portrait, because the default centre crop will often cut the top of the head.

03

Clean up the signature

Trim removes the blank paper around the strokes so the signature fills its region instead of floating in a white box. Lighten pushes the off-white scan background to pure white. Both are checkboxes, so unticking either one is the undo. Neither touches your source file.

04

Check, then download

The checks panel compares the rendered file against the width, height and byte limit you entered. Join photo and signature online free, confirm all four lines show a tick, and download. Your layout and limits are remembered for the next form, the images are not.

Set dimensions and a maximum file size.

Photo signature merge with custom dimensions is the part most tools get backwards. They resize to hit a file size, which quietly breaks the dimension requirement you were given. This one treats your pixel dimensions as fixed and spends quality to reach the byte target instead.

How the size target is actually hit

JPEG quality does not map linearly to file size, so you cannot calculate the right setting. The tool encodes once at quality 95 and checks the byte count. If that already fits, it stops. If not, it runs eight passes of a binary search between quality 35 and 95, each pass callingcanvas.toBlob()and keeping the best candidate that landed under the limit. Eight passes narrows a 60 point range to under a quarter of a point, which is finer than the encoder resolves anyway.

A 600x800 merge at the 50 KB preset typically settles around quality 60 to 75. The same content at 1200x1600 has four times the pixels and generally cannot reach 50 KB without visible 8x8 blocking, because JPEG encodes in discrete cosine transform blocks and there is a floor below which each block cannot be described in fewer bits.

When the target cannot be reached

Rather than hand back an oversized file and let the portal reject it, the tool states the measured floor. You get the exact size it managed at the lowest usable quality, and a separate button to shrink dimensions if you decide that tradeoff is acceptable. It never shrinks on its own, because plenty of forms specify a minimum dimension as well as a maximum size, and silently satisfying one while breaking the other is worse than failing loudly.

Picking dimensions when the form is vague

If the instructions give physical size rather than pixels, multiply millimetres by the required dpi and divide by 25.4. A 35x45 mm photo at 300 dpi is 413x531 px. Forms that specify neither usually accept anything between 200x230 and 600x800. Going larger is not safer: every extra pixel competes for the same byte budget, so an unnecessarily large canvas is what pushes you below usable quality. To change dimensions after the fact, the image resizer handles single files and batch resizing handles a folder of them.

Check your image before downloading.

Basic merging, custom dimensions and KB limits are not unusual. What this photo and signature merger adds is a panel that compares the rendered file against the requirements you typed in, before you commit to the download.

  • Width and height. Confirms the output is exactly the pixel size you asked for, not a value the encoder adjusted to meet a size target.
  • Byte ceiling. Shows the measured file size against your limit, in kilobytes, as it will land on disk.
  • Real JPG. Confirms the blob MIME type is image/jpeg. Portals read the file header rather than the extension, so a renamed PNG fails even though it looks fine locally.
  • Signature at 1:1. Renders the signature region at true output pixels from the encoded JPG, not the pre-compression canvas, so you see the artefacts a reviewer will see.

Why the 1:1 signature view matters

A scaled-down preview hides exactly the failure you need to catch. A signature stroke two pixels wide looks solid in a thumbnail and comes out of a 20 KB encode as a dotted grey line. Viewing the region at actual output size is the only reliable check short of downloading and opening the file. If strokes look broken there, raise the signature share before you touch the quality, since a thicker stroke survives compression far better than a thin one at higher quality.

What this tool cannot verify

Dimensions, bytes and format are measurable in the browser, so those are checked. Everything else on a typical application checklist is not. Pose, expression, head coverage, background colour, print recency, and whether the signature matches the one on record are all human judgements. No browser tool can confirm acceptance, and any that claims to be approved by a particular authority is overstating it. Read the issuing body's own specification, for example the UIDAI guidance for Aadhaar related submissions, or the UK passport photo rules for British applications. Treat the checks here as covering the file, not the application.

Everything runs locally

Identity photos and specimen signatures are the two files most worth keeping off other people's servers. Both images are decoded with object URLs, composited on a canvas, and encoded with toBlob. No step in that chain makes a network request, which you can confirm in the Network tab of your browser developer tools. Your layout, dimensions and size limit are cached in local storage to speed up the next form. The images never are.

Merging more than two images?

Stack any number of images vertically, side by side, or in a grid with full layout control.

JPG Joiner

Need a specific pixel size?

Scale a single file to exact dimensions before or after merging, with the aspect ratio locked.

Resize Image

Shrinking files separately?

Compress a photo and a signature as two files when the form wants them uploaded apart.

Compress JPG

Frequently asked questions.

How do I combine my photo and signature into one JPG?

Add your photo to the left slot and your signature to the right slot, then pick whether the signature sits below the photo or beside it. The combined JPG renders immediately and updates every time you change a setting. Stacked is the layout most application forms expect, because a photo box is usually taller than it is wide and the signature strip runs along the bottom. Beside works when the form wants a wide landscape image. Set the output width and height in pixels, choose a maximum file size if the form specifies one, and download. Nothing is uploaded at any point. The whole merge runs on an HTML canvas inside your browser, so the speed depends on your device rather than a server queue, and a typical 600x800 output finishes in well under a second.

Can I keep the combined image below 50 KB?

Usually yes. Pick the 50 KB preset and the tool searches for the highest JPG quality that still lands under 51,200 bytes, holding your pixel dimensions fixed. It runs eight passes of a binary search between quality 35 and 95, so the result is the best-looking file that fits rather than an arbitrary low setting. A 600x800 photo and signature merge typically lands around quality 60 to 75 at that target. Where it fails is large dimensions: asking for 50 KB at 2000x2600 px is not achievable without visible blocking, and the tool says so explicitly instead of silently handing you an oversized file. When that happens you get the measured floor size and an optional button to shrink dimensions. A photo signature joiner under 50KB only helps if the face is still recognisable, so check the preview.

How do I set the output dimensions?

Type the width and height in pixels into the two boxes under the layout controls. The range accepted is 50 to 5000 px per side. The photo fills its region using a cover fit, meaning it is cropped rather than squashed when its aspect ratio does not match the box, which keeps faces from stretching. Use the zoom and position sliders under photo framing to decide which part of the photo survives that crop. The signature behaves differently on purpose: it scales to fit entirely inside its region and is never cropped, because a clipped signature is usually rejected. If you do not know what size to use, check the form instructions first. Many Indian government portals want 200x230 px for the photo area, while most Western visa forms work from physical millimetres instead of pixels.

Will my photo or signature be uploaded?

No. Both images are read with the browser FileReader and object URLs, drawn onto a canvas element, and encoded with canvas.toBlob. None of those steps involve a network request. You can verify it yourself: open developer tools with F12, switch to the Network tab, clear it, then merge and download. You will see zero outgoing requests carrying image data. This matters more here than on most tools, because identity documents and specimen signatures are exactly the files you should not be handing to an unknown server. The tool also remembers your layout, dimensions and size limit in browser local storage so repeat submissions are faster, but it deliberately never stores the images themselves. Close the tab and both files are gone from memory with nothing left behind on disk.

Why does my signature look broken or faded after compression?

JPG compression works on 8x8 pixel blocks and encodes gradual tonal change efficiently, which is the opposite of what a signature is. Thin dark strokes on white paper are high-contrast edges, so they are the first thing to degrade when quality drops below roughly 50. Two fixes. First, give the signature more room using the space slider, because a stroke rendered three pixels wide survives compression far better than one rendered a single pixel wide. Second, turn on the lighten paper option, which pushes the off-white scan background to pure white and deepens the ink, giving the encoder flat areas it can compress cheaply and leaving more bits for the strokes. Use the inspect control to view the signature at true output pixels before downloading. If strokes look broken there, a reviewer will see the same thing.

What if my application asks for two separate files?

Then do not merge them. Plenty of portals have separate upload fields for photo and signature with different size limits for each, commonly 20 to 50 KB for the photo and 10 to 20 KB for the signature. Merging in that situation will get the submission rejected. Read the instructions before you combine anything. This page is for the other case, where the form asks for a single image containing both, or where you are printing a filled form and want one file to place. If you need the two kept apart but resized to separate targets, run each file through the JPG compressor linked at the bottom of this page. If you need several documents on one sheet instead, the general merge tool handles that better.

Does the signature cleanup change my original file?

No, and it is fully reversible. Trimming and lightening are applied to a copy drawn on a separate canvas, so the file you selected is untouched on disk. Untick either checkbox and the next render uses the raw scan again, which is the undo. Trim scans for pixels with luminance below 190 to find the ink bounding box, then crops to it with a two percent margin so descenders and flourishes are not clipped. Lighten is a levels adjustment: anything at or above luminance 185 becomes pure white, anything at or below 40 becomes pure black, and the span between is stretched across the full range. Strokes gain contrast rather than every channel being lifted, which is what a plain brightness increase would do. Both options assume dark ink on light paper. If you signed in a pale colour on a dark or coloured background, turn them off, because the detection will read your background as ink and crop to the wrong area.

What image formats can I use for the photo and signature?

JPG, PNG, and WebP for both slots. A phone photo of a signature on white paper works, though a flatbed scan at 300 dpi gives cleaner edges because there is no perspective skew or shadow gradient across the page. PNG is the better source format for a signature if you have the choice, since it is lossless and has not already lost stroke detail to a previous compression pass. The output is always JPG, because that is what the overwhelming majority of application portals accept, and several reject PNG outright. Note that renaming a PNG to .jpg does not work: portals read the actual file header, not the extension. This tool re-encodes genuinely, so the downloaded file is a real JPEG regardless of what you put in.