Free · No sign-up · 100% in your browser

JPG to ICO

Convert JPG/JPEG to ICO locally — turn a JPEG logo or photo into a multi-size .ico without a server upload. JPEG has no alpha channel, so frames are opaque; for transparent icons use PNG to ICO instead. Same local engine: pick sizes, download .ico and optional favicon.zip.

No upload No account No paywall

Drop a JPG / JPEG here

JPG · JPEG · also PNG/WebP · files stay on your device

Your image is processed in your browser and never uploaded · Privacy & analytics
Soft size cap ~10 MB · processing uses Canvas in your browser
Preview

image

Image fit

Fit mode
Padding inset 0%
Background
Corners

HTML <head> snippet

1

Local only

Images are decoded and resized with Canvas in your browser. Your image data is never uploaded for conversion.

2

ICO + ZIP

One pass builds a multi-size .ico and a favicon.zip with PNG sizes you checked.

3

Head snippet

Copy ready-to-paste <link rel="icon"> tags for your site.

4

No paywall

Free, no signup, no preview unlock — drop, download, done.

How do I convert JPG or JPEG to ICO?

.jpg and .jpeg are the same format, so both are handled the same way. (1) Drop the file — a square image of 512×512 or larger gives the cleanest small sizes. (2) Check the sizes you need (16, 32, 48, 64, 128, 256). (3) Download the multi-size .ico, plus an optional favicon.zip and <link> snippet. Each size is redrawn from the JPEG with Canvas and stored as a PNG frame inside the .ico, so the conversion adds no second round of JPEG compression. If the photo is not square, the page pre-selects Cover under Image fit, which crops from the centre — crop it yourself first if the subject sits off-centre.

What happens to the white background of a JPG logo?

JPEG has no alpha channel, so the white around a logo is real pixels, not transparency. The frames in the .ico are 32-bit, but every pixel is fully opaque, so the white square shows up on dark browser tabs and dark taskbars. Pad and the background colour only fill space added around the image; they cannot remove white that is part of the JPEG. You have two practical options, both tested in case 1 below: turn the white into a deliberate tile (Pad with a padding inset and Rounded corners), or re-export the logo as a PNG with a transparent background and convert that on PNG to ICO.

Does the JPG quality setting matter for an icon?

Mostly for the large sizes. Compression artefacts that are visible in a 256×256 frame are averaged away when the image is shrunk to 32×32 and 16×16 (case 2 measures this). If your .ico includes 128 or 256 for Windows shortcuts and desktop icons, start from the highest-quality export you have. A lower-quality JPEG does not make the .ico smaller, because the frames are stored as PNG.

What sizes should a favicon pack include?

Keep 16 and 32 for browser tabs; add 48 and 256 when the same .ico is used for Windows icons or shortcuts, and use the favicon.zip for apple-touch-icon and other PNG sizes. Design for the smallest size: at 16×16 a detail needs to be a few pixels wide to survive, so taglines and fine lines disappear (case 3).

Six icon sizes in one ICO file: 16, 32, 48, 64, 128 and 256 pixels
Choose the icon sizes you need, from 16 × 16 to 256 × 256 pixels.

According to MDN’s favicon glossary and the Wikipedia ICO file-format article, sites typically expose multiple icon sizes; IconToGo exports those sizes as one local pack.

Tested examples

We ran three cases through this page on 20 October 2026, in a Chromium 152 browser on macOS 26.6. The inputs are simple test images made for the purpose, so you can recreate them in any editor; byte sizes will differ for a real logo with more detail. All six sizes (16–256) were left checked and nothing else was changed unless noted. We then opened every .ico with a small script to read the frame list and pixel values.

1. JPG logo on a white background

Input: a 512×512 JPEG (quality 90, 15,355 bytes) — a teal circle with a white play symbol on a white background. Settings: the defaults; the page shows “Square source — any fit works.” and keeps Contain. Output: a 39,257-byte .ico with six 32-bit PNG frames, stored largest first: 256 (25,547 bytes), 128 (7,554), 64 (2,495), 48 (1,988), 32 (1,040) and 16 (531). Every pixel in every frame is fully opaque, so on a dark tab the icon sits in a hard white square.

With Pad: selecting Pad switched Background from Transparent to white (#ffffff); we set Padding inset to 12% and Corners to Rounded. The .ico was 30,926 bytes — 256 (18,947), 128 (6,282), 64 (2,219), 48 (1,779), 32 (1,042), 16 (555). The white is still there, but the clipped corners are fully transparent, so it reads as a rounded white tile rather than a pasted-on box. With a transparent re-export: the same logo saved as a PNG with no background (18,110 bytes) and dropped on this page gave a 19,461-byte .ico — 256 (10,108), 128 (4,116), 64 (1,896), 48 (1,675), 32 (1,011), 16 (553) — with transparent pixels around the circle in every frame and no white at all.

The same teal play-button logo as three ICO files on a dark and a light browser tab: the default JPG conversion shows a white square, Pad with rounded corners shows a white rounded tile, and the transparent PNG re-export shows only the circle
Case 1: the 32 and 16 frames from each .ico on a dark and a light tab, enlarged three times with hard pixel edges, plus the 16 frame at actual size. The checkerboard marks transparent pixels.

2. Compression artefacts: quality 60 vs 95

Input: one 512×512 drawing — a red rounded square with a white “K” on white — saved twice as JPEG: quality 60 (12,172 bytes) and quality 95 (24,531 bytes). Settings: the defaults. Output: quality 60 gave a 33,966-byte .ico — 256 (21,528), 128 (6,753), 64 (2,251), 48 (1,825), 32 (940), 16 (567); quality 95 gave a 34,285-byte .ico — 256 (21,894), 128 (6,601), 64 (2,293), 48 (1,813), 32 (1,023), 16 (559). To see the artefacts we also converted a lossless PNG of the same drawing and compared each frame with it. In the 256 frame, 7.5% of the quality-60 pixels were off by more than 8 levels (out of 255), up to 70 levels where red meets white; quality 95 had 0.2%, up to 16. At 32 and 16 no pixel in either file was off by more than 5 levels. In other words, the low-quality JPEG only hurts the large frames, and it does not save space in the .ico.

ICO frames converted from a red K badge saved as JPEG quality 60 and quality 95; the enlarged detail of the 256 frame shows speckled edges at quality 60, while the 32 and 16 frames look the same
Case 2: the 256 frame, a detail of it enlarged four times, and the 32 and 16 frames enlarged six times, for each quality setting.

3. How readable are 32 and 16?

Input: the quality-95 badge from case 2, and a second 512×512 version (quality 95, 31,389 bytes) with a smaller K and the words “KESTREL CO.” underneath. Settings: the defaults. Output: the tagline version gave a 45,177-byte .ico — 256 (29,565), 128 (8,658), 64 (2,864), 48 (2,196), 32 (1,191), 16 (601). In the source, the tagline letters are 33 pixels tall, which works out to about 2 pixels at 32×32 and 1 pixel at 16×16: in the frames it is a pale smudge, not text. Making room for it also shrank the K from 243 to 179 pixels tall, so the letter is about 11 pixels tall at 32 instead of 15, and under 6 at 16 instead of nearly 8. For a favicon, the K-only version is clearly easier to recognise; keep the full lockup for larger placements.

ICO frames from a K-only badge and a badge with the tagline KESTREL CO.; at 32 and 16 pixels the tagline turns into a blurred line and the K is smaller
Case 3: the 256 frame, the 32 and 16 frames enlarged six times, and both at actual size.

Download the test files

These are the exact files from the cases above, so you can repeat the tests or compare them with another converter. The .jpg and .png files are the inputs; the .ico files are what this page produced.

FAQ

Can an icon made from a JPG have any transparency?

Only where the page cuts the frame. Rounded and Circle corners clip the edges, and the clipped area is fully transparent while the rest of the frame stays opaque. That can help a round logo: with Circle, the case 1 logo (a teal circle on white) kept only a thin white ring around the circle instead of a white square. Anything inside the JPEG, including a white background, stays opaque. For a fully transparent logo, export it as PNG and use PNG to ICO.

Can I make a favicon from a photo?

Yes, but at 16×16 a photo turns into a few blocks of colour, so faces and scenery rarely stay recognisable. Crop tightly to one subject or a single shape, and check the 16 and 32 previews on this page before downloading.

Is my JPG uploaded anywhere?

No. Your image data is never uploaded for conversion: decoding, resizing and ICO packing all happen in the browser tab, so it also works on a private or unreleased logo. The page does load analytics and ad scripts, which are described on the Privacy page.

Can I convert ICO back to PNG?

Yes — use ICO to PNG. It extracts every frame stored in the .ico as its own PNG (or one ZIP of all sizes), also locally in your browser.