Original
Dimensions-
File size-
Tool / Images
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.
Dimensions-
File size-
Dimensions-
File size-
This opens an email to Kitly. Nothing is sent until you send the message from your email app.
Do not include passwords, file names, file contents, pasted JSON, destination URLs, QR contents, short codes, or other secrets.
Choose the format for the place where the image will be used, then compare the result before saving it.
Open an image your browser can decode. Kitly shows its dimensions and file size before conversion.
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.
Run the conversion, compare the preview and file details, and download the new file only when the result fits your needs.
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.
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.
A 96 × 64 opaque PNG became a smaller 96 × 64 JPEG at the converter’s initial quality of 0.86.
continuous-tone.png · 96 × 64 · 19288 bytes · image/png · opaque | Output format | JPEG |
|---|---|
| Quality | 0.86 (the slider’s initial value) |
| Browser | Headless Chrome 154.0.8037.99 |
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 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.
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.
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 | JPEG quality | 0.86 |
|---|---|
| PNG quality control | Ignored. The slider is disabled for PNG. |
| Browser | Headless Chrome 154.0.8037.99 |
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 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.
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.
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 | 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 |
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 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.
The how-to steps already say to pick a format and inspect the download. These choices are the ones the measured files distinguish.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The byte counts come from the fixtures on this page. These references describe the browser APIs the converter uses.
No. Conversion runs in your browser, so the selected image stays on your device while Kitly creates the downloadable result.
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.
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.
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.
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.
No. The measured SVG is 11306 bytes, contains an image element with a PNG data URL, and contains no path elements.