Skip to content

PNG'den ICO'ya Dönüştürücü (ve ICO'dan PNG'ye)

PNG, JPG, SVG veya WebP'yi gerçek bir çok boyutlu .ico dosyasına çevirin: 16, 32 ve 48 piksel tek dosyada, alfa kanalı korunur. PNG mi sıkıştırılmamış BMP mi seçin, iki boyutu da görün. ICO dosyalarını geri de açar.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Dönüştürme tamamen tarayıcınızda çalışır. Görseliniz hiçbir zaman yüklenmez.

Bir görseli buraya bırakın ya da seçmek için tıklayın

PNG, JPG, SVG, WebP, GIF veya BMP · en fazla 10 MB

Paketlenecek boyutlar

16, 32 ve 48 piksel, 1995 tarihli Microsoft simge kılavuzunun istediği küme ve gerçek favicon'larda en sık karşılaşılan bileşimdir. 512 sunulmuyor: dizin kenar uzunluğunu tek baytta sakladığı için 512'nin geçerli bir karşılığı yok.

İkisi de bir .ico içinde geçerlidir. PNG, Vista'dan beri Windows tarafından ve bugünkü tüm tarayıcılar tarafından okunuyor; örneklenen 20 sitede bulunan 14 gerçek ICO dosyasının 13'ünde ise sıkıştırılmamış BMP var, çünkü ImageMagick varsayılan olarak ona çeviriyor.

Bir .ico dosyasının içinde ne var (16 + 32 + 48 piksel örneği)
Offset Bayt Alan Değer
0 2 idReserved 0
2 2 idType 1
4 2 idCount 3
6 1 bWidth[0] 16 → 16
7 1 bHeight[0] 16 → 16
8 1 bColorCount[0] 0
9 1 bReserved[0] 0
10 2 wPlanes[0] 1
12 2 wBitCount[0] 32
14 4 dwBytesInRes[0] 248
18 4 dwImageOffset[0] 54
22 1 bWidth[1] 32 → 32
23 1 bHeight[1] 32 → 32
24 1 bColorCount[1] 0
25 1 bReserved[1] 0
26 2 wPlanes[1] 1
28 2 wBitCount[1] 32
30 4 dwBytesInRes[1] 720
34 4 dwImageOffset[1] 302
38 1 bWidth[2] 48 → 48
39 1 bHeight[2] 48 → 48
40 1 bColorCount[2] 0
41 1 bReserved[2] 0
42 2 wPlanes[2] 1
44 2 wBitCount[2] 32
46 4 dwBytesInRes[2] 1464
50 4 dwImageOffset[2] 1022
Bu sayfada aktarılan hex dökümü, bayt sayıları ve komut çıktısı, bu aracın ürettiği dosyalardan alındı; çözücülerin nasıl davrandığına dair her iddia üç bağımsız uygulamayla karşılaştırıldı: sıfırdan yazılmış bir kodlayıcı, Pillow 12.3.0 ve Chromium'un kendi ICO çözücüsü. Yayındaki favicon'ların çoğunun sıkıştırılmamış bitmap kullandığı gözlemi, Eylül 2026'da yirmi tanınmış sitenin simge dosyalarının indirilip ayrıştırılmasına dayanıyor. — Go Tools Mühendislik Ekibi · Sep 22, 2026

Go Tools dönüştürme araçlarını geliştiren yazılımcılar tarafından yazıldı ve incelendi. Burada anlatılan kapsayıcı düzeni, bayt sayıları ve arıza biçimleri, başkalarının bu biçim hakkındaki özetlerinden değil, yazılı bir alan incelemesinden geliyor.

PNG'den ICO'ya hızlı yanıtlar

Bir favicon.ico içinde hangi boyutlar olmalı?

16, 32 ve 48 piksel Bu üçlü tarayıcı sekmesini, Alt-Tab geçiş penceresini ve masaüstünü karşılar ve 1995'ten beri önerilen kümedir. Simgenin ayrıca büyük simge görünümünde de ayakta kalması gerekiyorsa 256'yı ekleyin.

Tek bir .ico dosyası birden çok boyut tutabilir mi?

Evet — zaten bunun için var Biçim bir kapsayıcıdır: altı baytlık bir başlık, görsel başına on altı baytlık bir dizin girdisi, sonra görseller. Her biri ayrı bir çizimdir; iyi bir simgenin 16 pikselde net kalmasının nedeni budur.

PNG'yi ICO'ya çevirmek saydamlığı bozar mı?

Doğru yapılırsa hayır Bir .ico içinde görsel saklamanın iki yolu da tam sekiz bitlik bir alfa kanalı taşır. Saydamlık yalnızca bir araç alfa baytlarını boş bıraktığında ya da eski yazılımların onun yerine okuduğu bir bitlik maskeyi düşürdüğünde kaybolur.

Bir .ico içindeki 256 piksellik katman ne kadar yer kaplar?

Sıkıştırılmamışta 264 KB, PNG olarak birkaç KB Sıkıştırılmamış 256 piksellik bir katman, resim ne olursa olsun tam 270.376 bayttır: 40 bayt başlık, 262.144 bayt piksel ve 8.192 bayt maske. Aynı katman PNG olarak saklandığında genellikle birkaç kilobayt tutar.

ICO dosyası nedir?

Bir .ico dosyası, görsel biçiminden çok küçük bir görsel arşividir. İçeride kaç resim olduğunu söyleyen altı baytlık bir başlıkla açılır; ardından her resim için genişliğini, yüksekliğini, bayt sayısını ve dosya içindeki konumunu veren on altı baytlık birer dizin girdisi ve en sonda resim verisinin kendisi gelir. Her resim iki yoldan biriyle saklanabilir: bütün hâlinde gömülmüş eksiksiz bir PNG dosyası olarak ya da altına bir bitlik saydamlık maskesi eklenmiş, sıkıştırılmamış bir Windows bitmap'i olarak.

Bir favicon'ın tarayıcı sekmesinde 16 pikselde ve dosya yöneticisinde 48 pikselde net görünebilmesinin nedeni bu tasarımdır: bunlar yeniden boyutlandırılan tek bir görsel değil, her boyut için ayrı ayrı elden geçirilmiş farklı çizimlerdir. Biçimin birkaç sürprizi olmasının nedeni de yine budur. Kenar uzunluğu tek bir baytta saklanır, dolayısıyla 256 sıfır olarak yazılır ve 512 hiç yazılamaz. Ayrıca dizin, her girdi için görsel verisinin kendisinin de kaydettiği bir boyut kaydeder; yani ikisi çelişebilir ve farklı yazılımlar farklı olanına inanır.

$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 16x16, 32 bits/pixel, 32x32, 32 bits/pixel

$ python3 -c "from PIL import Image; print(sorted(Image.open('favicon.ico').ico.sizes()))"
[(16, 16), (32, 32), (48, 48)]

Bu ICO dönüştürücü neler yapar

Tek dosya, işaretlediğiniz her boyut

Varsayılan olarak 16, 32 ve 48 piksel, 256'ya kadar. Her boyut, bir üstteki katmandan ölçeklenmek yerine özgün görselden tam kalitede ayrı ayrı çizilir; böylece küçük boyutlar büyük bir boyutun bulanıklığını devralmaz.

PNG ya da sıkıştırılmamış BMP, iki boyut da görünür

İki yasal payload biçiminin ödünleşimleri çok farklıdır ve dönüştürücülerin çoğu hangisini yazdığından hiç söz etmez. Burada bu bir anahtardır ve her birinin sonuçtaki dosya boyutu gösterilir; böylece karar tahminle değil, bir sayıyla verilir.

Her iki yolda da ayakta kalan saydamlık

Alfa kanalı eksiksiz yazılır ve eski yazılımların onun yerine okuduğu bir bitlik maske boş bırakılmaz, alfa kanalından türetilir. Saydam bir simgeyi yalnızca maskeyi okuyan yerlerde siyah bir kareye çeviren şey, o maskenin boş bırakılmasıdır.

Yalnızca bir indirici değil, bir ICO görüntüleyici

Ters yöndeki sekme, bir .ico içindeki her görseli gerçek boyutu, saklama biçimi, bit derinliği ve saydamlığının kaynağıyla birlikte listeler — birkaç tanınmış favicon'ın hâlâ kullandığı palet tabanlı bitmap'ler dahil. Bir tarayıcı size bunlardan yalnızca birini gösterir.

Bir dosya kendi içinde tutarsızsa söyler

Dizin, görsel verisiyle uyuşmayan bir boyut iddia ediyorsa bu işaretlenir. Firefox'un atacağı gömülü PNG de işaretlenir: ICO çözücüsü yalnızca 8 bitlik RGB ya da RGBA kabul ettiği için palet ya da gri tonlamalı bir katman Firefox'ta doğrudan kaybolur, diğer tüm tarayıcılar ise onu gösterir. İkisi de bir simgenin bir programda çalışıp bir başkasında boş görünmesinin yaygın nedenlerindendir ve ikisini de bildiren başka bir dönüştürücü yok.

Hiçbir şey yüklenmez

Okuma, yeniden boyutlandırma ve paketleme bu sayfada gerçekleşir. Dosya hiçbir zaman bir sunucuya ulaşmaz; dolayısıyla sonradan silinecek bir şey ve beklenecek bir kuyruk yoktur.

Kodda PNG'den ICO'ya dönüştürme

ImageMagick

magick in.png -define icon:auto-resize=48,32,16 favicon.ico

Alışılmış yanıt ve bu kadar çok favicon'ın sıkıştırılmamış olmasının nedeni. 256 piksel dışındaki her katman paketlenmeden önce bitmap'e çevrilir; böylece üç boyut birkaç yüz bayt yerine 15 KB civarında çıkar. Boyutlar en büyükten başlayarak yazılır.

Python + Pillow

img.save('favicon.ico', sizes=[(16,16),(32,32),(48,48)])

PNG gömer, dolayısıyla aynı üç boyut kabaca onda bir yer kaplar. Pillow ICO okumayı da iyi becerir: Image.open(f).ico.sizes() içeride ne olduğunu listeler ve başkasının dosyasını denetlerken işe yarar.

png-to-ico (npm)

npx png-to-ico icon.png > favicon.ico

Bir veya daha fazla PNG alıp bunları PNG payload'ları olarak paketleyen tek amaçlı bir komut satırı aracı. Bir derleme betiğinde elverişlidir; sizin için yeniden boyutlandırma yapmaz, dolayısıyla her boyutu ayrı dosya olarak siz verirsiniz.

sharp

sharp(input).resize(32).png()

Tek tek PNG'leri üretmek için mükemmeldir ama ICO kapsayıcısı yazmaz, bu yüzden genellikle yukarıdaki paketleyicilerden biriyle birlikte kullanılır. Bir derleme hattı zaten sharp üzerine oturmuşken sık karşılaşılan bir karışıklık kaynağı.

Go

github.com/Kodeworks/golang-image-ico

Bir image.Image değerinden tek görsellik bir ICO yazar. Tek boyutlu bir favicon için yeterlidir; birkaç boyutu tek kapsayıcıya paketlemek dizini kendiniz yazmanız demektir ve bu da otuz satır kadar tutar.

Windows simge derleyicileri

.rc kaynak betiği, rc.exe

Uygulama simgeleri normalde böyle üretilir. Derleyici .ico dosyasını çalıştırılabilirin kaynak bölümüne gömer; içindeki kapsayıcı bir web favicon'ıyla tam olarak aynı biçimdedir.

GIMP

Dosya → Farklı Dışa Aktar → .ico

Görselin her katmanını bir simge boyutu olarak dışa aktarır ve sıkıştırılmış PNG dahil olmak üzere katman başına bit derinliğini seçmenize izin verir. Bu seçimi sessizce karara bağlamak yerine gösteren az sayıdaki grafik araçtan biri.

macOS sips

sips -s format ico in.png --out favicon.ico

macOS'ta aslında bir ICO yazıcısı var: sips --formats, com.microsoft.ico biçimini yazılabilir olarak listeliyor ve yukarıdaki komut burada geçerli bir dosya üretti. Yapamadığı şey birden çok boyutu paketlemek — çıktı tek bir 48×48 katmandı. Arama sonuçlarının genelde önerdiği iconutil ise Apple'ın kendi kabı olan .icns üretir; onu Windows da tarayıcılar da okumaz.

PNG'den ICO'ya örnekler, bayt bayt

Üç boyutlu bir .ico dosyasının ilk 38 baytı

$ xxd -l 38 favicon.ico
00000000: 0000 0100 0300 1010 0000 0100 2000 e903  ............ ...
00000010: 0000 3600 0000 2020 0000 0100 2000 6c05  ..6...  .... .l.
00000020: 0000 1f04 0000                           ......

0000 ayrılmış alan, 0100 tür 1 (imleç değil, simge), 0300 ise içeride üç görsel olduğunu söyler. Ardından ilk 16 baytlık dizin girdisi gelir: 10 10 16×16, 00 renk sayısı, 00 ayrılmış, 0100 tek düzlem, 2000 piksel başına 32 bit, e903 0000 ise 3600 0000 = 54 offset'inde duran 1.001 baytlık payload'dır — bu da tam olarak 6 + 3 × 16, yani dizinin bittiği yerdir. Tek bayt olan boyutlar dışında her sayı little-endian'dır.

256 piksellik bir girdi 256 değil, sıfır saklar

bWidth = 0x00    bHeight = 0x00
256 × 256

Dizinde her kenar için tek bir bayt vardır, dolayısıyla tutabileceği en büyük sayı 255'tir ve 0, 256 anlamına gelecek şekilde tanımlanmıştır. Bu sayfada hiçbir yerde 512 piksel sunulmamasının nedeni de budur: 512 demek olan bir bayt yok. Buna rağmen birkaç çevrimiçi dönüştürücü bu seçeneği sunuyor ve 512 piksellik görseli, onu betimleyemeyen bir dizin girdisinin arkasına yazıyor.

Aynı üç boyut, iki farklı saklama yolu

16 + 32 + 48 px, PNG payloads
16 + 32 + 48 px, uncompressed BMP payloads
389 bytes
15,086 bytes

Sıkıştırılmamış bir payload, 40 + genişlik × yükseklik × 4 bayt artı bir bitlik maske tutar; yani boyutu yalnızca ölçülere bağlıdır, resme hiç bağlı değildir. Birbiriyle ilgisiz üç sitenin bayt bayt aynı uzunlukta simge dosyaları yayınlayabilmesinin nedeni budur.

Aynı dosyayı komut satırında üretmek

$ magick logo.png -define icon:auto-resize=48,32,16 favicon.ico
$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 48x48, 32 bits/pixel, 32x32, 32 bits/pixel

ImageMagick, 256 piksel dışındaki her katmanı paketlemeden önce sıkıştırılmamış bitmap'e çevirir; çıktısının birkaç yüz bayt yerine 15 KB civarında olmasının nedeni budur. Pillow tam tersini yapar ve PNG gömer: Image.open('logo.png').save('favicon.ico', sizes=[(16,16),(32,32),(48,48)]).

Bir .ico dosyasını yeniden açmak

$ magick favicon.ico favicon-%d.png
favicon-0.png   48×48
favicon-1.png   32×32
favicon-2.png   16×16

Bunu sizin yerinize bir tarayıcı yapamaz. Çok boyutlu bir .ico dosyasını bir <img> etiketine verdiğinizde, boyutlar hangi sırada olursa olsun tek bir görsel — en büyüğü — geri gelir. Bir dosyanın içinde gerçekte ne olduğunu listelemek, kapsayıcıyı elle ayrıştırmayı gerektirir; ICO → PNG sekmesinin yaptığı da budur.

PNG'den ICO'ya nasıl çevrilir

  1. 1

    Görselinizi bırakın

    PNG, JPG, SVG, WebP, GIF ve BMP kabul edilir, dosya başına 10 MB'a kadar. Hiçbir şey tarayıcıdan çıkmaz: dosya File API ile okunur ve her piksel yerel bir canvas üzerine çizilir.

  2. 2

    Boyutları seçin

    Başlangıçta 16, 32 ve 48 piksel işaretlidir. Simgenin büyük simge görünümünde ya da yüksek DPI'lı bir masaüstünde ayakta kalması gerekiyorsa 64, 128 veya 256'yı ekleyin. Kaynağınız işaretlediğiniz en büyük boyuttan küçükse sayfa bunu sessizce büyütmek yerine size söyler.

  3. 3

    Saklama biçimini belirleyin

    Varsayılan PNG'dir, çünkü bir büyüklük mertebesi daha küçüktür ve bugünkü her tarayıcı ile Vista'dan beri her Windows sürümü onu okur. Yayındaki favicon'ların gerçekte bulunduğu biçimi istiyorsanız sıkıştırılmamış BMP'ye geçin. İki dosya boyutu yan yana gösterilir.

  4. 4

    İndirin ve sayfaya bağlayın

    .ico dosyasını kaydedin ve işaretleme için link etiketlerini kopyala düğmesini kullanın. Kök dizindeki /favicon.ico yolu yedek olarak hâlâ çalışır, ancak tarayıcılara önce denemeleri söylenen yol açık bir link elemanıdır.

ICO dosyaları neden bozuk çıkar

256 piksellik bir katmanın 255 olarak yazılması

256 piksellik bir görselin dizin baytı 0 olmalıdır. 255 yazmak zararsız bir birim kayması gibi görünür ve bazı tarayıcıların sessizce çizmeyi reddettiği bir dosya üretir.

✗ Yanlış
bWidth = 0xFF   bHeight = 0xFF   ; 256 kastedilmiş, "255" yazılmış
✓ Doğru
bWidth = 0x00   bHeight = 0x00   ; 0, 256 anlamına gelecek şekilde tanımlı

Dizin ile görselin boyut konusunda anlaşamaması

Bir dizin girdisi 16×16 derken arkasındaki payload gerçekte 32×32 olduğunda çözücüler ikiye ayrılır: kimisi dizine güvenip hiçbir şey çizmez, kimisi payload'a güvenip düzgün gösterir. Dosya o zaman bir makinede çalışır, diğerinde görünmez.

✗ Yanlış
girdi: 16×16     payload IHDR: 32×32
✓ Doğru
girdi: 32×32     payload IHDR: 32×32

Bitmap yükseklik alanının iki katına çıkarılmaması

Sıkıştırılmamış bir katmanın içinde yükseklik, renk verisini ve maskeyi birlikte kapsar. Düz yüksekliği yazmak, kimi çözücülerde boş, kimilerinde görselin alt yarısı olarak görünen bir dosya üretir ve iki durumda da hata verilmez.

✗ Yanlış
biHeight = 32        ; 32 piksellik bir görsel için
✓ Doğru
biHeight = 64        ; 2 × 32, renk verisi artı maske

Alfa kanalı boş bırakılmış sıkıştırılmamış katman

Bazı araçlar maskeyi doldurur ama her alfa baytını sıfırda bırakır. Bir çözücü bunu tamamen saydam bir görsel olarak okur ve simge kaybolur; bir diğeri maskeye geri döner ve doğru gösterir. İkisini de tutarlı biçimde yazmak bu tartışmanın tamamını ortadan kaldırır.

✗ Yanlış
alfa baytları: tümü 0x00   maske: tümü 0x00
✓ Doğru
alfa baytları: gerçek değerler   maske: alfa < 128 olan yerlerde işaretli

İnternetten dosya çeken bir SVG

Bir SVG rasterleştirilirken içindeki dış kaynak referansları engellenir ve bunu bildiren hiçbir şey olmaz — hata tetiklenmez, canvas da okunabilir kalır. Kırık görsel yer tutucusu böylece simgenin içine işlenir. Dönüştürmeden önce çizimi belge içine gömün.

✗ Yanlış
<image href="https://cdn.example.com/logo.png"/>
✓ Doğru
<image href="data:image/png;base64,iVBORw0KGgo…"/>

PNG'den ICO'ya dönüştürücüye ne zaman ihtiyaç duyarsınız

Yeni bir site için favicon hazırlamak
Logoyu bırakın, varsayılan üç boyutu koruyun, favicon.ico dosyasını indirip web köküne koyun. Kopyalanan link etiketleri, aynı simge için modern işaretlemeyi bir SVG ve bir Apple touch simgesiyle birlikte verir.
Büyükken iyi, küçükken bulanık görünen bir simgeyi düzeltmek
Genellikle dosyada tek bir büyük katman vardır ve geri kalan her şey tarayıcının onu küçültmesidir. Gerçek bir 16 piksellik katmanı, 256 piksellik sürümden değil kaynaktan çizerek paketlemek sorunu çözer.
Bir masaüstü uygulamasına simgesini vermek
Windows çalıştırılabilirleri, kurucular ve kısayollar .ico alır ve kabuğun farklı bölümleri aynı dosyadan farklı boyutlara uzanır. 16, 32, 48 ve 256'yı paketlemek listelerdeki küçük simgeleri, Alt-Tab geçiş penceresini ve büyük simge görünümlerini karşılar.
Bir simgenin neden bir yerde görünüp başka yerde görünmediğini bulmak
Dosyayı ICO → PNG sekmesinde açın. Dizinin yanlış betimlediği bir boyut, hiç alfası olmayan bir katman ya da kesilmiş bir girdi listede görünür ve komşusu bozuk olsa bile sağlam her katman yine de dışa aktarılır.
Eski bir .ico dosyasından PNG'leri geri almak
Eski bir projeden devralınan simgeler, çoğu zaman bir logonun hayatta kalan tek kopyasıdır. Ters yöndeki sekme her katmanı kendi PNG dosyası olarak dışa aktarır; çoğu dönüştürücünün reddettiği palet bitmap'i olarak saklanmış katmanlar dahil.

Bir .ico dosyasının içinde gerçekte ne var

Altı bayt, sonra görsel başına on altı bayt
Başlık 00 00 ayrılmış alan, simge için 01 00 (02 00 bir imleç dosyasını işaretler) ve ardından iki baytlık bir sayaçtan oluşur. Her dizin girdisi genişlik, yükseklik, palet boyutu ve bir ayrılmış bayttır — her biri tek bayt — bunları iki baytlık düzlem ve bit derinliği alanları ile payload'ın uzunluğunu ve offset'ini veren iki dört baytlık alan izler. Çok baytlı olan her şey little-endian'dır.
Sıfır 256 demektir, 512 ise ifade edilemez
Genişlik ve yükseklik tek bayt olduğu için 256'nın 0 olarak kodlanması gerekir ve daha büyüğünün hiçbir kodlaması yoktur. 256 piksellik bir katman için 0 yerine 255 yazmak yakın bir yaklaşıklık değildir: tarayıcıların çizmeyi reddettiği bir dosya üretir. 512 piksel seçeneği sunan dönüştürücüler, kendi içeriğini betimleyemeyen girdiler yazıyor demektir.
Sıkıştırılmamış bir katman tam olarak 40 + g × y × 4 bayt artı bir maske tutar
Maske satır başına ceil(genişlik ÷ 32) × 4 bayt ekler. Böylece 16 piksellik bir katman 1.128 bayt, 48 piksellik 9.640 bayt, 256 piksellik ise 270.376 bayt tutar — resmin ne gösterdiğinden tamamen bağımsız olarak. Birbiriyle ilgisiz üç sitenin bayt bayt aynı uzunlukta favicon yayınlayabilmesinin nedeni bu sabit maliyettir; 256 piksellik katmanın burada yalnızca payload PNG olduğunda sunulmasının nedeni de budur.
Bitmap başlığı yüksekliği iki katı yazar
Sıkıştırılmamış bir katmanın içinde yükseklik alanı, renk bitmap'i ile saydamlık maskesini üst üste yığılmış hâlde betimler; bu yüzden maske hiçbir bilgi taşımasa bile gerçek yüksekliğin iki katı olarak yazılır. Bunu yanlış yapmak biçimin en sessiz arızalarından biridir: kimi çözücüler boş bir görsel üretir, kimileri resmin alt yarısını verir ve hiçbiri hata bildirmez.
Düzlem, bit derinliği ve renk sayısı alanları en iyi ihtimalle yol göstericidir
Şartname bu alanlar konusunda kesindir, gerçek dosyalar ise onu yok sayar. Microsoft'un kendi belge sitesi; dizininde sıfır düzlem ve piksel başına sıfır bit yazan, altında ise piksel başına dört bitlik bir payload bulunan bir favicon sunuyor ve bu dosya her yerde görünüyor. Çözücüler gerçek biçimi dizine güvenerek değil, payload'dan çıkarır: bir PNG imzasından ya da bitmap başlığından.
ICO'nun hiçbir zaman bir RFC'si olmadı
image/vnd.microsoft.icon ortam türü IANA'ya Eylül 2003'te kaydedildi ve atıf verdiği kaynak "Icons in Win32" adlı 1995 tarihli bir Microsoft makalesi. ICO şartnamesi diye yaygın biçimde alıntılanan RFC 2361 ise aslında "WAVE and AVI Codec Registries" başlığını taşıyor ve görsellerden hiç söz etmiyor.

favicon.ico dosyasını doğru hazırlamak

Web için 16, 32 ve 48'i paketleyin ve orada durun
Bu üçlü 1995'ten beri önerilen kümedir ve gerçek favicon'larda en sık karşılaşılan bileşimdir. Fazladan boyutlar bedava değildir: her biri, tarayıcının hangisini istediğini bilmeden önce indirebileceği bir katman daha demektir.
16 piksellik katmanı çizin, büyüğünü küçültmekle yetinmeyin
256 pikselde iyi duran bir logo, 16 piksele geldiğinde ince çizgilerini genellikle kaybeder. Küçük boyut önemliyse çizimi onun için sadeleştirin — daha az şekil, daha kalın çizgiler — ve sadeleşmiş sürümü kendi katmanı olarak paketleyin.
Bir link elemanı kullanın, /favicon.ico dosyasını da yedek olarak tutun
HTML şartnamesi tarayıcılara /favicon.ico dosyasını yalnızca isterlerse ve yalnızca hiçbir simge link'i yoksa getirebileceklerini söyler. Güvenilir yol açık bir link elemanıdır; kökteki dosya ise besleme okuyucuları, tarayıcı botları ve işaretlemenizi ayrıştırmayan her şey için hâlâ işe yarar.
Arama sonuçları önemliyse 48 pikselin üstünde bir boyut ekleyin
Google'ın favicon kılavuzu en az 8 piksellik kare bir görsel ister ve farklı yüzeylerde iyi durması için 48 pikselin üzerine çıkmayı önerir. ICO'yu kabul ettiği kadar PNG'yi de kabul eder, dolayısıyla büyük boyutun .ico dosyası içinde olması hiç şart değildir.
Dosyaya sadece bakmayın, denetleyin
Tarayıcınızda görünen bir simge yine de hatalı olabilir: uyuşmayan bir dizin girdisi, eksik bir alfa kanalı ya da okunamayan bir katman, tarayıcınızın seçtiği o tek görselin görünmesini engellemez. Dosyayı ters yöndeki sekmede açmak hepsini gösterir.

PNG'den ICO'ya: sıkça sorulan sorular

Bir PNG'yi ICO dosyasına nasıl çeviririm?
PNG'yi bu sayfaya bırakın, 16, 32 ve 48 piksel işaretli kalsın ve sonucu indirin. Her şey tarayıcıda çalışır, dolayısıyla görsel hiçbir zaman yüklenmez. Komut satırındaki alışılmış karşılığı magick logo.png -define icon:auto-resize=48,32,16 favicon.ico komutudur.
Simgem küçük boyutlarda neden bulanık görünüyor?
Neredeyse her zaman dosyada tek bir büyük görsel bulunduğu ve küçük olan her şeyin tarayıcının onu anlık küçültmesi olduğu için. Piksel ızgarası küçüldüğü anda kayıpsız diye bir şey kalmaz: ince çizgiler ve ayrıntı, yeniden örnekleme ne kadar iyi olursa olsun yaklaşık 24 pikselin altında kaybolur, yani kaliteyi dönüştürücü değil hangi boyutların paketlendiği belirler. Gerçek bir 16 piksellik katman paketleyin; logo ayrıntılıysa o katman için çizimi ölçeklemek yerine sadeleştirin.
İçerideki görseller PNG mi olmalı, sıkıştırılmamış BMP mi?
Aksini gerektiren bir nedeniniz yoksa PNG: bir büyüklük mertebesi daha küçüktür ve bugünkü her tarayıcı ile Vista'dan beri her Windows sürümü onu okur. Sıkıştırılmamış bitmap'ler yine de sahada daha yaygın tercihtir — büyük ölçüde ImageMagick varsayılan olarak onlara çevirdiği için — ve çok eski yazılımlar söz konusuysa daha güvenli seçimdir. Sayfa iki dosya boyutunu da gösterir, böylece kararı sayıya bakarak verebilirsiniz.
Neden 512 piksel seçeneği yok?
Dizin her kenar uzunluğunu tek bir baytta saklar, dolayısıyla ifade edebileceği en büyük değer 255'tir ve 0, 256 anlamına gelmek üzere ayrılmıştır. 512 yazmanın hiçbir yolu yoktur. Bu seçeneği sunan dönüştürücüler, arkasındaki görseli betimlemeyen bir dizin girdisi üretir; bu da bazı yazılımların göstermeyi reddettiği bir simge elde etmenin iyi bir yoludur.
Şeffaf arka planı olan bir PNG, ICO'ya dönüştüğünde saydam kalır mı?
Evet. Alfa kanalı eksiksiz yazılır ve eski yazılımların onun yerine okuduğu bir bitlik maske, boş bırakılmak yerine alfa kanalından türetilir — şeffaf arka planın bazı araçlarda siyah kareye dönüşmesinin nedeni tam da bu maskenin boş bırakılmasıdır. Kısmen saydam bir piksel, alfası yarının altına düştüğünde maskede saydam sayılır; maske piksel başına tek bit olduğu için mevcut tek seçenek budur.
Bir SVG'yi ICO'ya çevirebilir miyim?
Evet ve vektör bir kaynak mümkün olan en iyi girdidir, çünkü her boyut bir bitmap'ten yeniden örneklenmek yerine geometriden çizilir. Tek uyarı: SVG'nin ağ üzerinden çektiği her şey — bağlantılı bir görsel, uzak bir yazı tipi, dışarıdan alınan bir stil dosyası — dönüştürme sırasında hata vermeden engellenir. Sayfa bu referansları denetler ve sizi uyarır.
Site kökünde hâlâ bir favicon.ico gerekiyor mu?
Bulundurmakta yarar var ama artık asıl yol o değil. HTML şartnamesi, tarayıcıların /favicon.ico dosyasını isteyebileceğini ve bunu yalnızca sayfada hiçbir simge link elemanı yokken yapacağını söyler. Tarayıcılara önce kullanmaları söylenen şey bir link elemanıdır; kökteki dosya ise besleme okuyucularını, tarayıcı botlarını ve HTML'inizi hiç ayrıştırmayan her şeyi karşılar.
Google arama sonuçları için ICO dosyası ister mi?
Hayır. Google'ın favicon belgeleri BMP, GIF, ICO, PNG, JPEG, PPM ve TIFF biçimlerini kabul eder, en az 8 piksellik kare bir görsel ister ve farklı yüzeylerde doğru görünmesi için 48 pikselin üzerine çıkmayı önerir. Tek bir büyük PNG bunu karşılar; .ico ise geri kalan her şey içindir.
Bir .ico dosyasını açtığımda tarayıcım neden tek bir boyut gösteriyor?
Çünkü bir görsel elemanının size verebileceği tek şey bu. Çok boyutlu bir .ico dosyasını bir tarayıcıya verdiğinizde o tek bir görsel seçer — pratikte en büyüğünü — ve geri kalanına erişilemez. Her katmanı listelemek kapsayıcıyı doğrudan ayrıştırmayı gerektirir; bu sayfadaki ICO → PNG sekmesinin yaptığı da budur.
Dizin ile görselin boyut konusunda anlaşamaması ne anlama gelir?
Dosyanın kendi içinde tutarsız olduğu anlamına gelir ve çözücüler bunu birbirinin tam tersi biçimde ele alır: kimisi dizine güvenip hiçbir şey çizmez, kimisi görsel verisine güvenip düzgün gösterir. Bir simgenin bir makinede çalışıp başka birinde görünmemesinin klasik nedenidir; bu yüzden bir dosya açtığınızda sayfa bunu işaretler.
Bu araç, başka dönüştürücülerin reddettiği ICO dosyalarını açabilir mi?
Çoğu zaman evet. Palet bitmap'i olarak saklanan katmanları — piksel başına dört ya da sekiz bit — birkaç tanınmış favicon hâlâ kullanıyor ve pek çok dönüştürücü bunları doğrudan reddediyor. Bozuk katmanlar da teker teker ele alınır, dolayısıyla okunamayan tek bir boyut geri kalanın dışa aktarılmasını engellemez. Liste ayrıca Firefox'un atacağı gömülü PNG katmanlarını da işaretler: ICO çözücüsü yalnızca 8 bitlik RGB ya da RGBA kabul ettiğinden palet ya da gri tonlamalı bir PNG orada kaybolur. Mozilla'nın kendi sitesi tam da bu sorunu taşıyan bir simge yayınladı — 64 piksellik katmanı, Firefox'un kendisinin attığı bir palet PNG'si; simgeyi görünür tutan yalnızca diğer katmanlar.
Görselim bir yere yükleniyor mu?
Hayır. Dosya tarayıcının File API'si ile okunur, bu sayfadaki bir canvas üzerine çizilir ve yerel olarak çalışan JavaScript tarafından kapsayıcıya paketlenir. Hiçbir istek görseli bir yere taşımaz; bunu geliştirici araçlarınızın ağ panelinden doğrulayabilir ya da sayfa yüklendikten sonra bağlantıyı kesip çevrimdışı dönüştürerek görebilirsiniz.

Sayı Tabanı Dönüştürücü — Binary, Hex, Decimal ve Octal

Dönüştürme Araçları

Binary, hex, decimal, octal ve herhangi bir taban (2-36) arasında anında dönüştürün. Ücretsiz ve gizli — tüm işlem tarayıcınızda yapılır.

İkinin Tümleyeni ve İşaretli Tam Sayı Kodlama Hesaplayıcısı

Dönüştürme Araçları

İşaretli bir tam sayı yazın; işaret-büyüklük, birin tümleyeni, ikinin tümleyeni ve ofset ikili kodlamalarını 4-64 bit arasında tek seferde alın. Bit deseni veya hex yapıştırıp beş okumayı yan yana görün. Tarayıcıda çalışır.

chmod Hesaplayıcı — Linux Dosya İzinleri

Dönüştürme Araçları

Linux dosya izinlerini sekizlik (755, 644) ve rwx simgeleri arasında çevrimiçi dönüştürün. Hazır chmod komutları alın, 777 gibi riskli ayarları anında yakalayın — ücretsiz, tamamen tarayıcınızda çalışır.

Renk Dönüştürücü — HEX, RGB, HSL & OKLCH

Dönüştürme Araçları

HEX'i RGB, HSL, OKLCH, OKLAB ve CMYK biçimlerine tarayıcınızda dönüştürün — herhangi bir biçimi tek tıkla kopyalayın. Ücretsiz, kayıt yok, renkleriniz sayfadan asla çıkmaz.

HEX'ten CMYK'ye Dönüştürücü

Dönüştürme Araçları

HEX renklerini tarayıcınızda CMYK'ye dönüştürün. Baskı önizlemeleri için sRGB tabanlı saf yaklaşım. Ücretsiz, kayıt yok, renkleriniz sayfadan asla çıkmaz.

HEX'ten HSL'ye Dönüştürücü

Dönüştürme Araçları

Herhangi bir HEX rengi tarayıcınızda HSL'ye dönüştürün — 3 haneli, 6 haneli ve alpha içeren 8 haneli HEX desteklenir. Ücretsiz, anında, kayıt yok, renkleriniz sayfadan asla çıkmaz.