Tool / Images

Image Converter

Use Kitly as a browser image converter for everyday file cleanup, social sharing, website assets, and documents. Opening a format depends on this browser, not a universal decoder.

Select an image file to begin.

Original

Original

Dimensions-

File size-

Converted

Converted

Dimensions-

File size-

How to convert an image

Choose the format for the place where the image will be used, then compare the result before saving it.

  1. Choose the source image

    Open an image your browser can decode. Kitly shows its dimensions and file size before conversion.

  2. Select an output format

    Pick WebP or AVIF for efficient web images, JPEG for widely compatible photos, or PNG when transparency matters. Use the quality control for compressed formats.

  3. Convert and inspect

    Run the conversion, compare the preview and file details, and download the new file only when the result fits your needs.

Format choices that usually work well

  • Use JPEG for photographs when broad compatibility matters and transparency is not needed.
  • Use PNG for logos, screenshots, sharp interface graphics, or images that need transparent pixels.
  • Use WebP or AVIF for modern websites, but verify that the app or publishing platform accepts the chosen format.

What conversion does not do

  • Changing formats cannot restore detail that is missing from a low-resolution or heavily compressed source.
  • Animated images are rendered as a still frame because browser canvas export does not preserve animation.
  • The SVG output wraps a raster image inside an SVG file; it does not trace the picture into editable vector paths.

Practical guidance

These examples record one Chrome session: a continuous-tone image converted to JPEG, a transparent graphic compared as JPEG and PNG, and checks for SVG wrapping, missing AVIF export, a two-frame GIF, and a PNG text comment. Sizes are the files linked below, not a general compression promise.

Conversion needs JavaScript because this browser decodes the file and encodes the new one on your device. The measured examples, format choices, and troubleshooting below stay readable without JavaScript.

Measured conversions

Fixtures are original synthetic images, not camera photos or customer files. Continuous-tone samples stand in for a photograph: smooth color changes and no transparency. The flat graphic is the transparency case. Headless Chrome 154.0.8037.99 on macOS. The canvas calls match the converter: white fill before draw for JPEG, quality 0.86 passed only for JPEG, and SVG written as an embedded PNG.

Continuous-tone image to JPEG

A 96 × 64 opaque PNG became a smaller 96 × 64 JPEG at the converter’s initial quality of 0.86.

Input

continuous-tone.png · 96 × 64 · 19288 bytes · image/png · opaque
Settings
Output format JPEG
Quality 0.86 (the slider’s initial value)
Browser Headless Chrome 154.0.8037.99

Observed JPEG

continuous-tone.jpg · 96 × 64 · 1350 bytes · image/jpeg
Reopened origin pixel (0, 0): 71, 86, 179, 255
Reopened center pixel: 122, 58, 132, 255

What to check

Dimensions stayed 96 × 64. The file went from 19288 bytes to 1350 bytes, which the compressor’s comparison rule would call smaller by 93.0%. Every sampled pixel was opaque. Use JPEG for this kind of continuous-tone image when the destination does not need transparency.

Caveats

  • This fixture is a generated color field, not a photograph from a camera. A real photo can come out larger or smaller than 93.0%.
  • Byte counts come from this Chrome canvas encoder. Another browser can write a different JPEG.

Example files

Transparent graphic: PNG keeps the hole, JPEG paints it white

The same 32 × 24 mark was exported as PNG and as JPEG. PNG kept the transparent corner and the exact blue. JPEG turned that corner white, shifted the blue, and grew from 100 bytes to 914 bytes.

Input

transparent-mark.png · 32 × 24 · 100 bytes
Corner (0, 0): 0, 0, 0, 0
Mark pixel (16, 12): 12, 122, 184, 255
Opaque rectangle from x 8–23 and y 6–17
Settings
JPEG quality 0.86
PNG quality control Ignored. The slider is disabled for PNG.
Browser Headless Chrome 154.0.8037.99

Observed PNG and JPEG

PNG re-export: 32 × 24 · 154 bytes
Corner: 0, 0, 0, 0
Mark pixel: 12, 122, 184, 255

JPEG: 32 × 24 · 914 bytes · image/jpeg
Corner: 255, 255, 255, 255
Mark pixel: 16, 121, 178, 255

What to check

JPEG has no alpha channel, so the converter fills the canvas with white before drawing. The reopened corner is exactly white and opaque. The flat blue also moved, from 12, 122, 184 to 16, 121, 178, because JPEG is lossy. The PNG re-export kept both the transparent corner and the original blue. Both new files were larger than the 100-byte source: PNG by 54.0% (154 bytes) and JPEG by 814.0% (914 bytes). A format change is not a size reduction.

Caveats

  • The download name for a PNG conversion of this file would be transparent-mark.png. The example output is stored as transparent-mark-png.png so the input remains available.
  • The source is an original drawn rectangle, not a logo from another site.

Example files

SVG is a wrapped raster, AVIF was unavailable, and animation and a text comment were dropped

The SVG export contains a PNG, not vector paths. This Chrome hid AVIF. A two-frame GIF froze on the red frame. A PNG tEXt comment did not survive JPEG export.

Inputs used for the checks

continuous-tone.png · 96 × 64 · 19288 bytes
two-frame.gif · 4 × 4 · 95 bytes · 2 frames
metadata-comment.png · 8 × 8 · 112 bytes · tEXt Comment kitly-av04-marker
Settings
SVG export Canvas PNG data URL inside an <image> element
AVIF probe canvas.toDataURL("image/avif") did not return an AVIF data URL
GIF decode used by the tool createImageBitmap, which returned frame 1
JPEG quality for the comment check 0.86
Browser Headless Chrome 154.0.8037.99

Observed limits

continuous-tone.svg · 96 × 64 · 11306 bytes · image/svg+xml
Contains <image> and data:image/png. Contains no <path>.
AVIF option: not offered, because this canvas cannot encode it.
GIF frame 1 pixel: 255, 0, 0, 255
GIF frame 2 pixel: 0, 0, 255, 255
createImageBitmap pixel: 255, 0, 0, 255
metadata-comment.jpg · 759 bytes · marker text absent

What to check

Open the SVG in a text editor and you will see one embedded PNG, not editable paths. Do not choose SVG when you need tracing. AVIF is removed from the format menu before conversion when this browser cannot encode it; Chrome 154.0.8037.99 was that case. WebP, JPEG, and PNG export were available. The GIF file really has two frames, red then blue, but the converter’s bitmap is only the red frame. The source PNG contains the comment kitly-av04-marker; the JPEG does not.

Caveats

  • Only a PNG tEXt comment was checked. This run does not prove what happens to EXIF, ICC profiles, or GPS tags.
  • The GIF was generated with ImageMagick 7.1.2-21 as two solid 4 × 4 frames. It is an animation fixture, not a recorded clip.
  • AVIF may appear in another browser. Absence here is not a statement about every browser.

Example files

Choose a format from the measured trade-offs

The how-to steps already say to pick a format and inspect the download. These choices are the ones the measured files distinguish.

JPEG

Use when: The image is continuous-tone, the destination needs broad support, and transparency does not matter. The 96 × 64 fixture fell from 19288 bytes to 1350 bytes at quality 0.86.

Trade-offs: Transparent pixels become white. Flat colors can shift, as 12, 122, 184 became 16, 121, 178. A tiny source can grow: the 100-byte mark became 914 bytes.

PNG

Use when: You need the transparent corner and the exact flat color. The mark’s PNG re-export kept 0 alpha at the corner and 12, 122, 184 in the rectangle.

Trade-offs: The quality slider does nothing for PNG. Re-encoding can still grow the file; 100 bytes became 154 bytes.

WebP

Use when: This Chrome could encode WebP, so the format stays in the menu and the quality slider applies, as it does for JPEG.

Trade-offs: This session did not save a converter WebP byte count. Confirm the destination accepts WebP, and compare the size the page shows.

AVIF

Use when: Only when the format remains in the menu. The page drops outputs this canvas cannot encode.

Trade-offs: Chrome 154.0.8037.99 did not offer AVIF. Do not plan on it from a browser that hides it.

SVG

Use when: You need an SVG file that displays the current pixels, for a pipeline that expects .svg.

Trade-offs: It is not vector tracing. The 11306-byte sample is a PNG inside an image element and has no path elements.

When the converted file is surprising

Compare the download with the input named on the page. These are the failures observed in this session, plus the file and pixel limits enforced before conversion.

Problem: The new file is larger than the original.

Likely cause: The source is already small or flat, or the new format stores the pixels less efficiently. The transparent mark grew to 914 bytes as JPEG and 154 bytes as PNG.

What to do: Keep the original if it is smaller and the destination accepts it. For a continuous-tone image, compare JPEG at 0.86 with the size shown on the page before downloading.

Problem: A transparent area turned white.

Likely cause: JPEG, and any other non-transparent output, is drawn on a white rectangle. The mark’s corner changed from alpha 0 to 255, 255, 255, 255.

What to do: Export PNG when the checkerboard preview must stay empty. Inspect the corner of the download, not only the middle of the graphic.

Problem: AVIF is missing from the format list.

Likely cause: This browser’s canvas cannot encode AVIF. Chrome 154.0.8037.99 failed that probe, so the option is removed before you can run it.

What to do: Choose WebP, JPEG, or PNG in this browser. Try AVIF only in a browser where the option is actually listed.

Problem: The SVG will not open as editable paths.

Likely cause: The exporter wraps a PNG. It does not trace edges.

What to do: Use the SVG only as a placed image. For a transparent graphic, prefer the PNG export and edit that.

Problem: An animation became a single frame.

Likely cause: The converter decodes with createImageBitmap. On two-frame.gif that bitmap was the red frame, even though a frame decoder saw red and then blue.

What to do: Do not use this tool to preserve GIF animation. Convert a still you chose on purpose.

Problem: A text comment disappeared from the JPEG.

Likely cause: Canvas JPEG export did not carry the PNG tEXt comment kitly-av04-marker.

What to do: If you need that comment, keep the PNG. This check did not cover EXIF or other metadata.

Problem: The file is rejected before a preview appears.

Likely cause: The page accepts images up to 25 MB and 40 megapixels, and it rejects a file whose extension and MIME type disagree. HEIC, HEIF, and TIFF still depend on whether this browser can decode them.

What to do: Pick a smaller image or a format this browser already displays. A corrupt file and an undecodable HEIC or TIFF are reported separately.

References for the export behavior

The byte counts come from the fixtures on this page. These references describe the browser APIs the converter uses.

Frequently asked questions

Does the image converter upload my files?

No. Conversion runs in your browser, so the selected image stays on your device while Kitly creates the downloadable result.

Which image formats can I convert?

Kitly accepts image files the current browser can decode and converts them to outputs that browser can encode, such as WebP, JPEG, PNG, AVIF when supported, BMP, and SVG. HEIC, HEIF, and TIFF are not listed as generally openable.

Will converting an image reduce quality?

It depends on the output format. JPEG, WebP, and AVIF can use compression, and conversion can also increase file size. JPEG is a poor choice when you need to keep transparency.

Why did a transparent pixel become white?

JPEG export fills the canvas with white first. In the measured 32 × 24 mark, corner pixel (0, 0) changed from alpha 0 to opaque white, 255, 255, 255, 255.

Why is AVIF missing from the format list?

The page only lists formats this browser can encode. Headless Chrome 154.0.8037.99 could not produce an AVIF data URL, so AVIF was removed. WebP, JPEG, and PNG remained available.

Does the SVG output become editable vector paths?

No. The measured SVG is 11306 bytes, contains an image element with a PNG data URL, and contains no path elements.