> base64 | decode | JPG <

// Base64 dizelerini ve data URI'lerini JPG / JPEG fotoğraflarına geri çözün — EXIF korunur, anında önizleme, tek tıkla indirme

0 karakter
🖼️

Çözülen JPEG burada görünecek

[FAITHFUL]

Yeniden Sıkıştırma Yok

Çözücüden çıkan JPEG baytları, kodlananla bit bazında aynıdır — aynı kalite, aynı EXIF, aynı DCT katsayıları.

[PRIVATE]

Yerel Çözme

Base64 dizeniz tamamen tarayıcıda atob() ile çözülür. Yükleme yok. Sunucu yok. Yük üzerinde analiz yok.

[INSTANT]

Canlı Önizleme

Çözülen fotoğrafı ve boyutlarını anında görün — tek tıkla .jpg olarak indirin.

// BASE64'TEN JPG'YE HAKKINDA

Bu Araç Neleri Kabul Eder

  • >Data URI: data:image/jpeg;base64,/9j/4AAQSkZ…
  • >Ham JPEG Base64 yükü (/9j/ ile başlar)
  • >Gömülü boşluk / satır kaydırma içeren Base64
  • >Standart RFC 4648 alfabesi (+/, isteğe bağlı = dolgusu)
  • >URL güvenli Base64 (-_) — çözme sırasında otomatik normalleştirilir
  • >Çok parçalı JPEG'ler (JFIF, EXIF, Adobe, SPIFF işaretleyicileri)

Yaygın Kullanım Senaryoları

  • >Bir JSON API yanıtından bir fotoğrafı geri kazanma
  • >Bir veritabanı TEXT sütunundan profil avatarı çıkarma
  • >Data URI olarak saklanan bir CMS görüntü alanını çözme
  • >Bir e-posta MIME parçasından bir fotoğrafı yeniden oluşturma
  • >WebSocket üzerinden gönderilen bir kamera anlık görüntüsünü işleme
  • >Bozuk bir <img src="data:image/jpeg;base64,…"> etiketinde hata ayıklama
  • >Fotoğrafları Base64 olarak önbelleğe alan çevrimdışı öncelikli uygulamalar

Base64 → JPG Çözme Nasıl Çalışır

Çözücü, herhangi bir data URI önekini kaldırır, boşlukları ve URL güvenli karakterleri normalleştirir, ardından her 4 karakterlik Base64 grubunu 3 ikili bayta geri dönüştürmek için atob() çağırır. Sonuç, image/jpeg MIME türünde bir Blob içine sarılır ve bir <img> etiketiyle önizlenir. Base64 birebir ikiliden metne dönüşüm olduğundan, çıkış JPEG'i orijinaliyle bit bazında aynıdır — SHA-256 karması eşleşir ve hiçbir kalite kaybı olmaz.

Örnek JPEG Data URI:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wAALCAABAAEBAREA/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AKp//9k=

Performans ve Uyumluluk

  • >Çözme, yük uzunluğuna göre O(n) karmaşıklığındadır — 100 MB+ boyutu sorunsuz işler
  • >Yerel atob() + Uint8Array kullanır — üçüncü taraf kütüphane yok
  • >Tüm büyük kamera üreticilerinin EXIF açısından zengin JPEG'lerini destekler
  • >Chrome, Firefox, Safari, Edge ve mobil tarayıcılarda çalışır
  • >Mobil cihazlarda sıkıştırarak yakınlaştırma önizlemesi
  • >Blob URL üzerinden indirme — sunucuya gidiş dönüş yok

// BASE64'TEN JPG'YE NASIL ÇÖZÜLÜR

📋

Adım 1: Yapıştır

Base64 dizesini veya tam data URI'sini girdi alanına yapıştırın

🔍

Adım 2: Çöz

[DECODE] düğmesine tıklayın — JPEG anında işlenir

📊

Adım 3: İncele

Kaydetmeden önce fotoğrafı, boyutlarını ve dosya boyutunu kontrol edin

💾

Adım 4: İndir

Bit bazında aynı bir JPEG'i diske kaydetmek için [DOWNLOAD .jpg] düğmesine tıklayın

// KOD ÖRNEKLERİ — BASE64'TEN JPG'YE

JavaScript (Browser)

// Decode Base64 → JPEG Blob → preview
const b64 = '/9j/4AAQSkZJRgAB...';
const bin = atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) arr[i] = bin.charCodeAt(i);
const blob = new Blob([arr], { type: 'image/jpeg' });
document.getElementById('preview').src = URL.createObjectURL(blob);

Ham bir Base64 JPEG yükünü çözün, bir Blob içine sarın ve <img> ile işleyin. Data URI'leri doğrudan src'ye ayarlanabilir.

Node.js

const fs = require('fs');
const b64 = '/9j/4AAQSkZJRgAB...';
fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64'));

Node'un yerleşik Buffer'ını kullanarak Base64 metnini bir JPEG dosyasına çözün.

Python

import base64
with open('out.jpg', 'wb') as f:
    f.write(base64.b64decode('/9j/4AAQSkZJRgAB...'))

Yalnızca standart kütüphane — Base64 → JPEG baytları → dosya.

PHP

<?php
file_put_contents('out.jpg', base64_decode('/9j/4AAQSkZJRgAB...'));

base64_decode() ve file_put_contents() kullanan tek satır.

Shell (macOS / Linux)

echo '/9j/4AAQSkZJRgAB...' | base64 -d > out.jpg

POSIX base64 -d, dizeyi stdin'den okur ve JPEG'i diske yazar.

// SSS — BASE64'TEN JPG'YE

S: Base64'ten JPG'ye çözme nedir?

C: Base64 ile kodlanmış bir JPEG'i orijinal ikili biçimine geri döndürür. Çözücü, Base64 dizesinden her seferinde 4 ASCII karakter okur, bunları RFC 4648 alfabesinde arar ve grup başına 3 ikili bayt üretir. Ortaya çıkan bayt dizisi, eksiksiz ve geçerli bir JPEG dosyasıdır — aynı DCT katsayıları, aynı Huffman tabloları, aynı EXIF meta verileri, kodlamadan önceki ile aynı kalite.

S: Base64 dizesinin gerçekten bir JPEG olduğunu nasıl anlarım?

C: Her JPEG, FF D8 (Start-Of-Image) iki sihirli baytıyla başlar. Bu baytlar Base64 ile kodlandığında, ilk 4 karakter her zaman /9j/ olur. Dolayısıyla /9j/4AAQ (JFIF başlığı) veya /9j/2wC (Adobe APP14 kullanan birçok akıllı telefon kamerası) ile başlayan herhangi bir Base64 dizesi bir JPEG'dir. Diğer biçimlerin farklı önekleri vardır: PNG için iVBORw0KGgo, GIF için R0lGOD, WebP için UklGR.

S: Bir data URI'yi doğrudan çözebilir miyim?

C: Evet. Dizeniz data:image/jpeg;base64, ile başlıyorsa, çözücü bu öneki otomatik olarak kaldırır ve yükü işler. Yalnızca ham Base64 bölümüne sahipseniz, aracımız JPEG sihirli numarasını (/9j/) algılar ve çözülen baytları önizleme için image/jpeg olarak sarar. Boşluklar, satır sonları ve sekmeler çözmeden önce tamamen kaldırılır, böylece güzel biçimlendirilmiş bir JSON değerini doğrudan yapıştırabilirsiniz.

S: Çözme, JPEG'imin kalitesini düşürür mü?

C: Hayır. Base64 çözme saf bir ikili dönüşümdür — her Base64 karakteri belirleyici olarak 6 bite eşlenir ve 4 karakter 3 bayta çözülür. Çıkan JPEG baytları, kodlananla bit bazında aynıdır, dolayısıyla kalite, orijinal JPEG'in kaydedildiği kalitedir. Çözülen dosyanın SHA-256 karması, orijinalin karmasıyla eşleşir. Çözülen fotoğrafınız beklenenden daha kötü görünüyorsa, kalite kaybı JPEG ilk kaydedildiğinde meydana gelmiştir, Base64 gidiş dönüşü sırasında değil.

S: Çözülen JPG bozuk — sorun ne olabilir?

C: Tipik nedenler:
Kesilmiş dize — Base64 bir yerde kırpılmış. Eksiksiz bir JPEG, FF D9 (End-Of-Image) ile biter ve bu Base64'te /9k= veya 2Q== olarak kodlanır. Dizeniz bu kalıplardan biri artı isteğe bağlı dolgu ile bitmiyorsa, eksiktir.
Çift kodlanmış — JPEG iki kez Base64 ile kodlanmış. Tekrar çözün.
URL güvenli alfabe — dize +/ yerine -_ kullanıyorsa, bazı çözücüler reddeder. Aracımız her ikisini de normalleştirir.
Aslında farklı bir biçim — yük PNG veya WebP. Biçimi otomatik olarak algılayan genel Base64 → Görüntü çözücümüzü kullanın.

S: EXIF meta verilerim çözmeden sonra korunur mu?

C: Evet. EXIF APP1 segmenti (kamera modeli, GPS, tarih/saat, lens, ISO, beyaz dengesi, yönlendirme vb.) JPEG bayt akışının bir parçasıdır. Base64 bit bit tersine çevrilebilir olduğundan, EXIF dahil her bayt geri yüklenir. Gizlilik nedeniyle EXIF içermeyen fotoğraflara ihtiyacınız varsa, meta verileri çözmeden sonra exiftool -all= out.jpg gibi bir araçla veya tarayıcıda canvas tabanlı bir yeniden dışa aktarmayla kaldırın.

S: Base64'ü terminalde JPG'ye çözebilir miyim?

C: Evet. macOS ve Linux'ta:
echo '/9j/4AAQSkZJRgAB…' | base64 -d > out.jpg
(eski macOS base64, -D kullanır.)
Windows PowerShell'de:
[IO.File]::WriteAllBytes('out.jpg', [Convert]::FromBase64String('/9j/4AAQSkZJRgAB…'))
Girdiniz tam bir data URI ise, öneki kaldırmak için önce sed 's|^data:.*base64,||' komutundan geçirin.

S: Ne kadar büyük bir Base64 JPG'yi çözebilirim?

C: Tarayıcınızın bellek sınırına kadar. 100 MB'lık çözülmüş bir JPEG, modern masaüstü tarayıcılarının sorunsuz işlediği ~135 MB Base64 metni gerektirir. Mobil tarayıcılar ~40 MB'a kadar güvenilirdir. Aşırı büyük fotoğraflar için (orta format kameralardan RAW'dan dönüştürülmüş JPEG dışa aktarımları), sunucu tarafında çözmeyi düşünün: base64 -d photo.b64 > photo.jpg, bir tarayıcı gidiş dönüşünden çok daha hızlıdır.

S: Çözücü çevrimdışı çalışır mı?

C: Evet, ilk sayfa yüklemesinden sonra. Tüm çözme işlemi, hiçbiri ağ bağlantısı gerektirmeyen yerleşik tarayıcı API'lerini (atob(), Uint8Array, Blob, URL.createObjectURL()) kullanır. Bunu, ağınızı devre dışı bırakıp çözmeye devam ederek doğrulayabilirsiniz — önizleme ve indirme her ikisi de çalışmaya devam eder.

S: Base64 JPEG şifreli veya özel midir?

C: Hayır. Base64 bir kodlamadır, şifreleme değildir. Base64 dizenize sahip herkes onu milisaniyeler içinde orijinal fotoğrafa geri çözebilir ve EXIF verileri (GPS koordinatları dahil) bununla birlikte gelir. JPEG hassas bilgiler içeriyorsa, Base64 uygulamadan önce şifreleyin (AES-GCM, age, PGP) ve dizeyi yalnızca HTTPS üzerinden taşıyın.

S: Çözme istemci tarafında mı — herhangi bir şey yükleniyor mu?

C: Hiçbir şey yüklenmez. Her adım — öneki kaldırma, boşlukları normalleştirme, atob() çağırma, Blob oluşturma, <img> işleme, indirmeyi tetikleme — tarayıcınızda gerçekleşir. Çözme sırasında tarayıcı geliştirici araçlarının Ağ sekmesini açın; Base64 yükünüz için sıfır giden istek göreceksiniz. Bu araç gizli ekran görüntüleri, kişisel fotoğraflar ve düzenlemeye tabi veriler için güvenlidir.

S: Üretim kodunda Base64'ü JPG'ye nasıl çözerim?

C: Node.js'te: fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64')). Python'da: open('out.jpg','wb').write(base64.b64decode(b64)). Go'da: b, _ := base64.StdEncoding.DecodeString(b64); os.WriteFile("out.jpg", b, 0644). Java'da: Files.write(Path.of("out.jpg"), Base64.getDecoder().decode(b64)). Rust'ta: std::fs::write("out.jpg", base64::decode(b64)?)?. Ruby'de: File.binwrite('out.jpg', Base64.decode64(b64)). PHP'de: file_put_contents('out.jpg', base64_decode($b64)).

S: Base64'ten JPG'ye mi yoksa Base64'ten PNG'ye mi — hangisini kullanmalıyım?

C: Base64 dizesinin önekine bakın. /9j/ ile başlıyorsa JPEG'dir — Base64 → JPG kullanın. iVBORw0KGgo ile başlıyorsa PNG'dir — Base64 → PNG kullanın. Bir JPEG çözücüyü PNG üretmeye zorlayamazsınız (ya da tersi); sihirli baytlar gerçeği söyler. Şüphe duyduğunuzda, biçimi otomatik olarak algılayan ve doğru uzantıyla kaydeden genel çözücüyü kullanın.

// OTHER LANGUAGES