> PNG | encode | data-uri <

// PNG görüntülerini Base64 dizelerine ve data URI'lerine kodlayın — alfa şeffaflığı korunur, tamamen tarayıcınızda çalışır

🖼️

PNG'yi buraya bırakın veya seçmek için tıklayın

PNG dosyalarına göz atmak için tıklayın

// kabul edilen: PNG (.png, image/png)
0 karakter
[LOSSLESS]

Alfa Korunur

PNG alfa kanalı, palet ve gAMA/tRNS yığınları bayt bayt kodlanır — yeniden sıkıştırma yok, kalite kaybı yok.

[SECURE]

%100 İstemci Tarafında

PNG'niz tarayıcıdan asla ayrılmaz. Kodlama, FileReader + btoa() ile yerel olarak gerçekleşir — sunucuya gidiş dönüş yok.

[READY]

Kopyala ve Yapıştır

HTML, CSS, e-postalar, JSON yükleri ve satır içi SVG'ler için hazır, standartlara uygun bir data:image/png;base64,… URI'si elde edin.

// SSS — PNG'DEN BASE64'E

S: PNG'den Base64'e kodlama nedir?

C: Bir .png dosyasının ikili içeriğini, RFC 4648'de tanımlanan Base64 alfabesini kullanarak bir ASCII dizesine dönüştürür. Kodlanmış metin, doğrudan bir HTML <img> etiketine, bir CSS background-image kuralına, bir e-posta mesajına, bir JSON API yüküne veya başka herhangi bir yalnızca metin taşımasına eklenebilir. PNG baytlarının kendisi değişmeden kalır — her IHDR, IDAT, tRNS ve IEND yığını kodlanır ve tam olarak geri kazanılabilir.

S: Tarayıcıda bir PNG'yi Base64'e nasıl kodlarım?

C: PNG'nizi bırakma bölgesine sürükleyin (veya göz atmak için tıklayın). Araç, dosyayı FileReader.readAsDataURL() ile okur; bu zaten kullanıma hazır bir data:image/png;base64,… URI'si döndürür. Doğrudan <img src="…"> içine yapıştırmak istiyorsanız Data URI'yi seçin; API'niz/veritabanınız data:image/png;base64, önekini içermeyen ham Base64 bölümünü bekliyorsa Yalnızca Base64 yükü'nü seçin.

S: Bir PNG'yi Base64'e kodlamak şeffaflık veya kalite kaybına neden olur mu?

C: Hayır. Base64 saf bir ikiliden metne dönüşümdür — alfa kanalı, palet ve renk profili (iCCP/sRGB yığınları) dahil olmak üzere orijinal PNG'deki her bayt korunur. Dizeyi geri çözdüğünüzde dosya orijinaliyle bit bit aynıdır. Çözülmüş PNG'nin SHA-256 özeti orijinaliyle eşleşir. Bu yüzden Base64, piksel doğruluğunun önemli olduğu simgeleri, logoları ve ekran görüntülerini gömmek için doğru araçtır.

S: Bir PNG, Base64 kodlamasından sonra ne kadar büyür?

C: Base64, her 3 giriş baytı için 4 karakter kullanır, bu nedenle kodlanmış dize orijinal PNG dosyasından ~%33 daha büyüktür. Kesin boyut 4 × ⌈n / 3⌉ karakterdir; burada n PNG'nin bayt cinsinden boyutudur. 10 KB'lik bir PNG, ~13,6 KB Base64 metnine dönüşür. HTTP sıkıştırması (gzip, Brotli) Base64 metnini oldukça iyi işlediğinden, ağ üzerindeki ek yük pratikte genellikle %10–15'e daha yakındır.

S: Base64 ile kodlanmış bir PNG nasıl görünür?

C: Her PNG Base64 dizesi iVBORw0KGgo ile başlar. Bu önek, Base64'e yeniden kodlanmış 8 baytlık PNG imzası 89 50 4E 47 0D 0A 1A 0A'dır. Dolayısıyla iVBORw0KGgoAAAANSUhEUg... her zaman bir PNG'dir ve bu öneki görmek, verilerinizin sağlam olduğuna dair hızlı bir görsel kontroldür. Bir data URI olarak sarıldığında şöyle görünür:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==

S: HTML'ye bir PNG'yi Base64 olarak nasıl gömerim?

C: Tam data URI'sini bir <img> etiketinin src özniteliğine yapıştırın:
<img src="data:image/png;base64,iVBORw0KGgo…" alt="logo">
Tarayıcı, Base64 yükünü çözer ve PNG'yi tıpkı bir URL'den yüklenmiş gibi işler. Ek bir HTTP isteği yapılmaz; bu, kritik yol simgeleri, e-posta imzaları ve önce çevrimdışı çalışan uygulamalar için yararlıdır.

S: Bir Base64 PNG'yi CSS arka planı olarak nasıl kullanırım?

C: Data URI'sini url() işlevine sarın:
.icon { background-image: url('data:image/png;base64,iVBORw0KGgo…'); }
Yeniden kullanım için bunu bir CSS özel özelliğinde saklayın:
:root { --logo: url('data:image/png;base64,iVBORw0KGgo…'); }
.brand { background: var(--logo); }
Satır içi arka planlar simge başına bir HTTP isteğini ortadan kaldırır ancak CSS dosyanızı şişirir, bu nedenle bunları yalnızca küçük simgeler (< 4 KB) için kullanın.

S: JavaScript / Node / Python / PHP'de PNG'yi Base64'e nasıl kodlarım?

C:
JavaScript (tarayıcı): const uri = await new Promise(r => { const f = new FileReader(); f.onload = () => r(f.result); f.readAsDataURL(pngFile); });
Node.js: fs.readFileSync('logo.png').toString('base64')
Python: import base64; base64.b64encode(open('logo.png','rb').read()).decode()
PHP: base64_encode(file_get_contents('logo.png'))
Go: base64.StdEncoding.EncodeToString(pngBytes)
Ruby: Base64.strict_encode64(File.read('logo.png'))

S: Normal bir görüntü dosyası yerine ne zaman Base64 PNG kullanmalıyım?

C: Base64 PNG data URI'lerini şu durumlarda kullanın:
• görüntü < 4 KB ise (bir HTTP gidiş dönüşünden tasarruf etmek için)
• onu bir HTML e-postasına gömmeniz gerekiyorsa (birçok istemci uzaktaki görüntüleri engeller)
• tek dosyalık bir HTML raporu veya panosu dağıtıyorsanız
• görüntüyü bir JSON yükü veya bir veritabanı sütunu içinde saklıyorsanız
Görüntü büyükse, birçok sayfada yeniden kullanılıyorsa veya ayrı CDN önbelleğe alma gerektiriyorsa harici bir .png dosyasını tercih edin.

S: Base64 kodlaması PNG şeffaflığı ve paletli PNG'lerle çalışır mı?

C: Evet. Base64 bit bit bir dönüşüm olduğundan, her PNG renk modu eşit şekilde desteklenir:
RGBA / truecolor + alfa — 32 bit renk, tam şeffaflık
Palet (PLTE) + tRNS — 1 bit şeffaflığa sahip dizinlenmiş paletli PNG'ler
Gri tonlama + alfa — alfa ile 8/16 bit gri tonlama
16 bit deep color PNG'ler — tıbbi görüntüleme ve bilimsel görselleştirmede kullanılan HDR tarzı PNG'ler
Bunların tümü Base64 gidiş dönüşünden temiz şekilde geçer ve PNG'yi anlayan tarayıcılarda doğru şekilde görüntülenir.

S: Base64 ile kodlanmış bir PNG şifrelenmiş veya gizli midir?

C: Hayır. Base64 bir şifreleme değil, bir kodlamadır. Dizeyi okuyabilen herkes onu milisaniyeler içinde orijinal PNG'ye geri çözebilir. Bir ekran görüntüsü bir parola, bir API belirteci veya kişisel bilgiler içeriyorsa, onu Base64 olarak kodlamak korumaz — Base64 çıktısının üzerine gerçek bir şifreleme katmanı (AES-GCM, age, PGP) uygulayın veya görüntüyü, erişim denetimleri uygulayan bir sunucuya TLS üzerinden taşıyın.

S: Burada kodlayabileceğim maksimum PNG boyutu nedir?

C: Yapay bir üst sınır yoktur. Kodlama yerel olarak çalıştığından, sınır tarayıcınızın belleğidir — genellikle masaüstünde 100 MB+ ve mobilde 40–60 MB. Çok büyük PNG'ler (yüksek çözünürlüklü tıbbi veya uydu görüntüleri) için dosyayı parçalar halinde okuyup her parçada btoa() çağırırız; böylece ana iş parçacığı yanıt verir durumda kalır. Görüntünüz ~100 MB'tan büyükse, onu tarayıcıya yüklemek yerine sunucu tarafı bir kodlayıcıdan doğrudan akıtmayı düşünün.

S: PNG'den Base64'e mi yoksa JPG'den Base64'e mi — hangisini kullanmalıyım?

C: Logolar, arayüz simgeleri, ekran görüntüleri, diyagramlar ve şeffaflık veya keskin kenarlara (metin, grafikler) sahip her şey için PNG → Base64 kullanın. PNG kayıpsızdır ve alfayı tanır. Kayıplı sıkıştırmanın kabul edilebilir olduğu fotoğraflar veya çok renkli görüntüler için JPG → Base64 kullanın. JPEG dosyaları fotoğraflar için genellikle PNG'den 5–20× daha küçüktür, bu nedenle Base64 yükü çok daha kısadır. Genel kural olarak: görüntü bir kameradan geldiyse veya fotoğrafik degradeler içeriyorsa JPG, aksi takdirde PNG kullanın.

// OTHER LANGUAGES