Photos and signatures

Resize a photo or signature for an upload form

Match a form’s JPG format, pixel dimensions, and file-size range in one pass. Check the saved copy for readable details before submitting it.

6 min read Updated Sep 5, 2026
Illustration of an image with dimension arrows beside a file whose data blocks show a separate file-size constraint.
Quick answer

Match the pixels and the file-size range

Read the form’s accepted format, required width and height, and minimum or maximum KB. Enter those requirements in Resize Image to KB, choose padding or cropping if exact dimensions are needed, then inspect the saved JPG. A file can meet these checks and still fail a portal’s other rules.

Best for
People preparing a photograph or scanned signature for a job, exam, admission, or other online application.
Start with
Resize Image to KB
Illustrated preparation sequence

One image has several requirements to meet

Dimensions describe the frame. Bytes describe the saved file. Neither tells you whether the content is complete and readable.

  1. Step 1

    Read the current form

    Copy its accepted format, dimensions, and lower or upper size limits.

  2. Step 2

    Make a JPG copy

    Choose the frame and file-size range together, then run the tool.

  3. Step 3

    Inspect the result

    Compare actual bytes and pixels with the rule, then look closely at the photo or signature.

A selected check fails

Resolve the named mismatch

Change the source or permitted settings before trying again.

About this visual: Illustrative schematic, not a measured conversion result or an example of an accepted application.
Do this first

Prepare the file in four steps

Keep the original and use the requirements shown by the exact form you are completing.

  1. 1

    Copy all the upload requirements

    Note the file type, whether dimensions are exact or minimums, and whether KB is a maximum or a range.

  2. 2

    Choose the image and size limits

    Choose a JPG, PNG, WebP, AVIF, or BMP. Enter the maximum KB and add a minimum only if the form requires one.

  3. 3

    Set the frame only when needed

    For an exact size, enter both width and height. Contain keeps the whole image with white padding; cover fills the frame by cropping the center.

  4. 4

    Check and download the JPG

    Read the actual byte size, dimensions, and result checks. Inspect the face or signature, download the copy, and select that copy in the application.

01

Answer: what pixels, KB, and format each mean

Read the complete requirement before changing the image. Width and height describe its pixel frame; KB describes saved bytes. A maximum, an exact frame and a minimum-to-maximum range are different checks.

  • Resize Image to KB uses decimal units: 1 KB = 1,000 bytes. A maximum is a ceiling, not a request to reach that exact size; enter a minimum only when the form requires one.
  • Centimeters are not an exact pixel requirement unless a pixel density is also specified. Do not invent a mandatory DPI.
  • JPG and JPEG name the same format. Renaming another extension does not convert the file.
  • Use the current notice for the exact agency, year and field. Live camera capture remains a separate portal step.
Use the tool

Open Resize Image to KB

Set a custom minimum and maximum KB with optional exact pixel dimensions for the current form.

Published examples, checked 5 September 2026

Two portals ask for different files

These examples explain why one generic photo preset is not enough. Confirm the requirements in your own current form before using them.

India: one named examination notice
SSC Phase-XIV/2026 Selection Posts
The notice dated 13 April 2026 separates a scanned signature from live photograph capture.
  • The signature is JPEG, 10–20 KB, with an image dimension of about 6 cm wide by 2 cm high. The notice does not turn that centimeter measurement into a fixed pixel size.
  • The photograph is captured live in the application. Resizing a saved photo does not replace that step.
  • Read the SSC 2026 notice.
Bangladesh: one Teletalk application
Rural Electrification Board validation
The publicly accessible validation page specifies different frames and size ceilings for the photo and signature.
  • Color photo: exactly 300 × 300 pixels and no more than 100 KB.
  • Signature: exactly 300 × 80 pixels and no more than 60 KB. Other Teletalk applications can publish different instructions.
  • Read the Teletalk validation instructions.
Illustrated comparison of published requirements, not measured conversion results. The Teletalk page is undated; both sources were checked on 5 September 2026. Current application instructions take precedence.
02

Do: set the file-size range and choose the frame

Use Resize Image to KB for custom requirements, or Prepare Application Photos when its named preset matches the current form. Both create still JPG copies with white behind transparent areas.

  • BREBR Teletalk prepares its photo and signature independently. SSCASN KTP prepares the account form’s card scan, while My Number checks its own JPEG, byte-range and pixel-range rules. Their settings are not country-wide standards.
  • The named application workflow accepts supported HEIC inputs directly. For a custom Resize Image to KB target, convert HEIC to JPG first.
  • For a signature placed off-center on a sheet, use the BREBR signature crop selection inside the application workflow to select the signature area before final sizing. Keep the first and last strokes; crop selection does not validate the signature.
  • For custom exact dimensions, enter both width and height. Contain keeps the whole image with white padding; cover fills the frame with a center crop. Check whether the form allows the chosen framing.
  • Without exact dimensions, the custom tool may reduce pixels to meet the maximum. An impossible range remains flagged; it does not add filler bytes to satisfy a minimum.
  • Only make changes the authority permits. My Number preserves framing without enlarging an undersized original; a stored image cannot replace an application’s live capture.
03

Check: inspect the saved copy before submitting

Read the actual bytes and decoded dimensions, then inspect the visible result. A passing file check does not establish legibility, likeness, recency, background suitability or portal acceptance.

  • Check all signature strokes, face detail, complete card edges, small lettering, orientation and required margins.
  • Download each result and open the saved JPG. Choose that new file in the matching application field.
  • Treat every failed range or dimension check as unfinished. Use a better original or change only settings the receiving form permits.
  • If the selected properties pass but upload still fails, read the error for another file rule, filename, session, account, network or portal problem.
  • Follow the portal’s own byte interpretation when it differs. The custom KB tool uses decimal units; named presets explain their specific interpretation.
Quick questions

Photo and signature upload questions

How do I make a signature between 10 KB and 20 KB?

Enter 10 as the minimum KB and 20 as the maximum, then set any exact pixel dimensions separately. Inspect every signature stroke. A file that fits the byte range still has to meet the form’s other requirements.

How do I make a photo 300 × 300 pixels and under 100 KB?

Set width and height to 300 pixels and maximum KB to 100. Choose contain for white padding or cover for a center crop, then inspect the result. Only use these settings when they match your current form.

Does a 20 KB limit mean exactly 20,000 bytes?

In this tool, yes: it uses decimal KB, so 20 KB is 20,000 bytes. Some software reports sizes using 1,024-byte units or rounded labels. Check actual bytes and follow the receiving portal’s instructions when its interpretation differs.

Why is the file too small even at the right dimensions?

A simple image with large blank areas may encode to very few bytes. If it stays below your required minimum, use a better original or larger dimensions if allowed. The tool does not add meaningless bytes to make the number larger.

Should I choose contain or cover for a signature?

Contain keeps all the strokes and adds white margins where necessary. Cover trims the center to fill the frame and can cut off the ends. Check the form’s margin rules and use a manual crop when you need precise placement.

Can I use this tool to prepare a passport photo?

Only for changes the issuing authority permits. Some authorities prohibit editing or cropping, or require live or certified photo capture. Matching file size and dimensions cannot establish that a passport photograph is acceptable.

Why does my image still fail after all the checks pass?

The local checks cover the selected file properties, not every portal rule. The photo content, filename, application field, browser session, account, or service may be the cause. Read the exact error before compressing again.

Remember this

The short version

  • Match the required format, dimensions, and size range together.
  • Check the actual output bytes and pixels, then inspect the content.
  • Keep the original and submit the saved JPG copy.
  • A passed local check does not guarantee acceptance by an application portal.
Ready to work

Open the tool you need

Choose the tool for the change your file needs.

(function() { const title = document.querySelector('h1'); const actionRegion = document.querySelector('.action-container, .action-body'); if (!title || !actionRegion || title.querySelector('.tool-hero-mark')) return; const path = window.location.pathname.replace(/\/$/, ''); if (!path || path === '/' || path.startsWith('/converters') || path === '/about' || path === '/contact' || path === '/support' || path === '/privacy-policy') { return; } const lowerKey = path.replace(/^\/(video|audio)\//, '').replace(/^\//, '').toLowerCase(); if (!lowerKey) return; let category = 'image'; if (path.startsWith('/video/')) category = 'video'; if (path.startsWith('/audio/')) category = 'audio'; const isUtility = lowerKey.includes('ascii') || lowerKey === 'check-my-file' || lowerKey === 'prepare-for-ai' || lowerKey.includes('resizer') || lowerKey.includes('metadata') || lowerKey.includes('compress') || lowerKey.includes('base64') || lowerKey.includes('background') || lowerKey.includes('crop') || lowerKey.includes('watermark') || lowerKey.includes('remove-pages') || lowerKey.includes('unlock') || lowerKey.includes('protect') || lowerKey.includes('editor') || lowerKey.includes('excel') || lowerKey.includes('upscale') || lowerKey.includes('merge') || lowerKey.includes('split') || lowerKey.includes('ocr') || lowerKey.includes('sign') || lowerKey.includes('trim') || lowerKey.includes('favicon'); if (category === 'image' && isUtility) category = 'tool'; const labelMap = { jpg: 'JPG', jpeg: 'JPEG', png: 'PNG', gif: 'GIF', svg: 'SVG', pdf: 'PDF', heic: 'HEIC', jfif: 'JFIF', webp: 'WEBP', bmp: 'BMP', ico: 'ICO', word: 'DOCX', docx: 'DOCX', excel: 'Excel', xls: 'XLS', xlsx: 'Excel', mp4: 'MP4', mov: 'MOV', avi: 'AVI', mp3: 'MP3', aac: 'AAC', flac: 'FLAC', wav: 'WAV', webm: 'WEBM', cr2: 'CR2', arw: 'ARW', nef: 'NEF', raf: 'RAF' }; const formatLabel = (value) => labelMap[value] || value.toUpperCase(); function getFormatMeta(key) { if (key === 'check-my-file') { return {primary: 'Check', secondary: 'File', connector: 'dot'}; } if (key === 'prepare-for-ai') { return {primary: 'Prepare', secondary: 'AI', connector: 'dot'}; } const directMatch = key.match(/^([a-z0-9]+)-to-([a-z0-9]+)$/); const convertMatch = key.match(/^convert-([a-z0-9]+)-to-([a-z0-9]+)$/); const convertToMatch = key.match(/^convert-to-([a-z0-9]+)$/); if (directMatch) { return {primary: formatLabel(directMatch[1]), secondary: formatLabel(directMatch[2]), connector: 'arrow'}; } if (convertMatch) { return {primary: formatLabel(convertMatch[1]), secondary: formatLabel(convertMatch[2]), connector: 'arrow'}; } if (convertToMatch) { return {primary: 'Any', secondary: formatLabel(convertToMatch[1]), connector: 'arrow'}; } if (key.startsWith('compress-')) { return {primary: 'Compress', secondary: formatLabel(key.replace('compress-', '')), connector: 'dot'}; } if (key.includes('base64') && key.includes('decode')) { return {primary: 'Base64', secondary: 'Decode', connector: 'dot'}; } if (key.startsWith('base64-to-')) { return {primary: 'Base64', secondary: formatLabel(key.replace('base64-to-', '')), connector: 'arrow'}; } if (key.includes('-to-base64')) { const from = key.replace('convert-', '').replace('-to-base64', ''); return {primary: formatLabel(from), secondary: 'Base64', connector: 'arrow'}; } if (key.includes('base64')) { return {primary: 'Base64', secondary: 'Encode', connector: 'dot'}; } if (key.includes('ascii')) { return {primary: 'ASCII', secondary: 'Art', connector: 'dot'}; } if (key.includes('resizer')) { return {primary: 'Resize', secondary: 'Pixels', connector: 'dot'}; } if (key.includes('remove-pages')) { return {primary: 'Remove', secondary: 'Pages', connector: 'dot'}; } if (key.includes('crop') && key.includes('pdf')) { return {primary: 'Crop', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf-editor')) { return {primary: 'Edit', secondary: 'PDF', connector: 'dot'}; } if (key.includes('unlock')) { return {primary: 'Unlock', secondary: 'PDF', connector: 'dot'}; } if (key.includes('protect')) { return {primary: 'Protect', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf') && key.includes('metadata')) { return {primary: 'Clean', secondary: 'Metadata', connector: 'dot'}; } if (key.includes('metadata')) { return {primary: 'EXIF', secondary: 'Clean', connector: 'dot'}; } if (key.includes('background')) { return {primary: 'Remove', secondary: 'Background', connector: 'dot'}; } if (key.includes('crop')) { return {primary: 'Crop', secondary: 'Image', connector: 'dot'}; } if (key.includes('watermark')) { return {primary: 'Watermark', secondary: 'Image', connector: 'dot'}; } if (key.includes('upscale')) { return {primary: 'Upscale', secondary: 'Image', connector: 'dot'}; } if (key.includes('merge')) { return {primary: 'Merge', secondary: 'PDF', connector: 'dot'}; } if (key.includes('split')) { return {primary: 'Split', secondary: 'PDF', connector: 'dot'}; } if (key.includes('ocr')) { return {primary: 'OCR', secondary: 'PDF', connector: 'dot'}; } if (key.includes('sign')) { return {primary: 'Sign', secondary: 'PDF', connector: 'dot'}; } if (key.includes('trim')) { return {primary: 'Trim', secondary: 'Video', connector: 'dot'}; } return {primary: 'Tool', secondary: '', connector: 'dot'}; } function getIconClass(key, categoryName) { const toFormat = key.split('-to-')[1]; if (key === 'check-my-file') return 'bi-file-earmark-check'; if (key === 'prepare-for-ai') return 'bi-ui-checks-grid'; if (key.includes('ascii')) return 'bi-textarea-t'; if (key.includes('resizer')) return 'bi-aspect-ratio'; if (key.includes('metadata')) return 'bi-shield-slash'; if (key.includes('compress')) return 'bi-file-earmark-zip'; if (key.includes('base64')) return 'bi-journal-code'; if (key.includes('background')) return 'bi-scissors'; if (key.includes('crop')) return 'bi-crop'; if (key.includes('watermark')) return 'bi-type'; if (key.includes('remove-pages')) return 'bi-trash'; if (key.includes('unlock')) return 'bi-unlock'; if (key.includes('protect')) return 'bi-lock'; if (key.includes('editor')) return 'bi-pencil-square'; if (key.includes('excel')) return 'bi-file-earmark-spreadsheet'; if (key.includes('upscale')) return 'bi-arrows-angle-expand'; if (key.includes('merge')) return 'bi-files'; if (key.includes('split')) return 'bi-scissors'; if (key.includes('ocr')) return 'bi-file-earmark-text'; if (key.includes('sign')) return 'bi-pen'; if (key.includes('trim')) return 'bi-scissors'; if (toFormat) { switch (toFormat) { case 'jpg': case 'jpeg': return 'bi-filetype-jpg'; case 'png': return 'bi-filetype-png'; case 'gif': return 'bi-filetype-gif'; case 'svg': return 'bi-filetype-svg'; case 'pdf': return 'bi-filetype-pdf'; case 'word': case 'docx': return 'bi-file-earmark-word'; case 'xls': case 'xlsx': case 'excel': return 'bi-file-earmark-spreadsheet'; case 'heic': return 'bi-filetype-heic'; case 'webp': return 'bi-filetype-webp'; case 'bmp': return 'bi-filetype-bmp'; case 'ico': return 'bi-file-image'; case 'mp4': return 'bi-filetype-mp4'; case 'mov': return 'bi-filetype-mov'; case 'mp3': return 'bi-filetype-mp3'; case 'wav': return 'bi-filetype-wav'; case 'avi': return 'bi-filetype-avi'; default: return 'bi-file-earmark-image'; } } if (categoryName === 'video') return 'bi-film'; if (categoryName === 'audio') return 'bi-music-note-beamed'; if (categoryName === 'image') return 'bi-file-earmark-image'; return 'bi-gear'; } const formatMeta = getFormatMeta(lowerKey); const connectorIcon = formatMeta.connector === 'arrow' ? 'bi-arrow-right-short' : 'bi-dot'; const iconClass = getIconClass(lowerKey, category); const mark = document.createElement('span'); mark.className = `tool-hero-mark converter-mark converter-mark--${category}`; const iconWrap = document.createElement('span'); iconWrap.className = 'converter-mark__icon'; const icon = document.createElement('i'); icon.className = iconClass; iconWrap.appendChild(icon); mark.appendChild(iconWrap); const formatWrap = document.createElement('span'); formatWrap.className = 'converter-format'; const primary = document.createElement('span'); primary.className = 'format-pill'; primary.textContent = formatMeta.primary; formatWrap.appendChild(primary); if (formatMeta.secondary) { const connector = document.createElement('span'); connector.className = 'format-connector'; const connectorIconEl = document.createElement('i'); connectorIconEl.className = connectorIcon; connector.appendChild(connectorIconEl); formatWrap.appendChild(connector); const secondary = document.createElement('span'); secondary.className = 'format-pill format-pill--secondary'; secondary.textContent = formatMeta.secondary; formatWrap.appendChild(secondary); } mark.appendChild(formatWrap); title.classList.add('tool-hero-title'); title.prepend(mark); })();