PNG to ICO converter
Some systems still ask for a real .ico file. Drop your PNG here and get one with three sizes inside, plus the PNG icons if you want them, with no upload and no waiting. Nothing is uploaded: every file is made in your browser.
Live preview
Add an image to see your icons.
Source
Icon source
Drop an image or an SVG
PNG, JPG, WebP or SVG. Paste works too.
No image yet. A square picture works best.
Style
Background
The browser tab icon stays transparent. The touch icon and the Android icon need a solid square, so they use black or white behind your icon.
Rounding applies to the browser and Android icons. The touch icon and the maskable icon are always full squares.
Device preview
Add an image to see your icons.
Your files
Your files appear here as soon as the icon is ready.
Site details and code
Shown when someone installs your site as an app. Up to 45 characters.
Used under the icon on a home screen. Up to 12 characters.
Where you will put the files on your site, such as / or /icons/.
Save this as site.webmanifest next to your icons.
{
"name": "My Website",
"short_name": "Website",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "/maskable-icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
Paste these lines inside the <head> of every page.
<link rel="icon" type="image/x-icon" sizes="48x48" href="/favicon.ico"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/apple-touch-icon.png"> <link rel="manifest" href="/site.webmanifest"> <meta name="theme-color" content="#ffffff">
Add this to your root layout (app/layout.tsx).
import type { Metadata, Viewport } from "next";
export const metadata: Metadata = {
icons: {
icon: [
{ url: "/favicon.ico", sizes: "48x48", type: "image/x-icon" },
{ url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" },
{ url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" },
],
apple: [
{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
],
},
manifest: "/site.webmanifest",
};
export const viewport: Viewport = {
themeColor: "#ffffff",
};
Add this to your theme's functions.php, with the icon files in the folder you typed above.
add_action( 'wp_head', 'add_site_favicon_links', 5 );
remove_action( 'wp_head', 'wp_site_icon', 99 );
function add_site_favicon_links() {
?>
<link rel="icon" type="image/x-icon" sizes="48x48" href="<?php echo esc_url( home_url( '/favicon.ico' ) ); ?>">
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo esc_url( home_url( '/favicon-16x16.png' ) ); ?>">
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo esc_url( home_url( '/favicon-32x32.png' ) ); ?>">
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="<?php echo esc_url( home_url( '/apple-touch-icon.png' ) ); ?>">
<link rel="manifest" href="<?php echo esc_url( home_url( '/site.webmanifest' ) ); ?>">
<meta name="theme-color" content="#ffffff">
<?php
}
More favicon ideas
How it works
Choose where the icon comes from
Type one to three characters, pick an emoji, choose a simple shape, or drop in your own PNG, JPG, WebP or SVG. Nothing is uploaded; the picture stays in this tab.
Style it
Pick a flat colour or a soft gradient, round the corners, and set the padding. The browser tab icon, the phone home screen icon and the Android icon all update as you change a setting.
Check every file
Each file is listed with its size and what it is for, so you can see that the touch icon fills its whole square and the Android icon keeps your logo inside the safe circle.
Download and paste
Download the package as one ZIP, with a plain-language README and ready-made snippets, or take the files one by one. Upload the icons to the folder you typed under Site details, then paste the lines for your HTML, Next.js or WordPress head.
Questions about a PNG to ICO converter
How do I make a PNG to ICO converter?
The page opens with your own image; change it, the colours, the rounding and the padding as you like, and every file updates at once. Then open Site details and code, choose HTML and copy it. The code already uses the folder /. Start with a square PNG at 256 pixels or more. A transparent background is kept, so the corners stay clear in the tab.
What is inside the ICO file this makes?
Three PNG-encoded images at 16, 32 and 48 pixels in one favicon.ico. Browsers and Windows pick the size they need, so one file serves tabs, taskbars and shortcuts.
Where do I put the files for a PNG to ICO converter?
Download favicon.ico on its own from the file list and put it in the top folder of your site, where browsers and tools look for it by default.
Is anything uploaded when I make a PNG to ICO converter?
No. Your file is opened by your own browser and drawn into each icon on your device, so the picture behind your PNG to ICO converter never reaches a server and the page keeps working offline once loaded.
More free tools
View all toolsAbout these tools
Small tools, made by Sifency
Sifency is a small studio that builds themes, plugins and web apps. These tools began as the things we kept needing ourselves, so we tidied them up and left them open for everyone. There is nothing to sign up for.