ToolDeck

Base64 ইমেজ ডিকোডার

Base64 Data URI থেকে দেখার যোগ্য ইমেজে ফিরিয়ে আনুন

Base64 ইনপুট

Base64 ইমেজ ডিকোডিং কি?

Base64 ইমেজ ডিকোডিং হল Base64 ইমেজ এনকোডিং এর বিপরীত: এটি একটি Base64 স্ট্রিং বা ডেটা URI গ্রহণ করে যা একটি ইমেজ প্রতিনিধিত্ব করে এবং এটিকে দৃশ্যমান বাইনারি পিক্সেল ডেটায় রূপান্তরিত করে। যখন আপনি data:image/png;base64,iVBORw0KGgo... এর মতো একটি স্ট্রিং পান, ডিকোডিং ডেটা URI প্রিফিক্স সরায়, RFC 4648 এ সংজ্ঞায়িত Base64 এনকোডিং বিপরীত করে, এবং আসল ইমেজ বাইটগুলি পুনর্গঠন করে। ব্রাউজার তখন ডিকোড করা বাইটগুলি একটি দৃশ্যমান ইমেজ হিসাবে রেন্ডার করতে পারে।

ডেটা URI (RFC 2397) MIME টাইপ এবং Base64-এনকোড করা সামগ্রী একটি একক স্ট্রিংয়ে বান্ডেল করে। এগুলি API প্রতিক্রিয়া, HTML ইমেল সোর্স কোড, CSS স্টাইলশীট, এবং ডেটাবেস রেকর্ডে প্রায়ই উপস্থিত থাকে যেখানে ছবিগুলি বাইনারি ফাইলের পরিবর্তে পাঠ্য হিসাবে সংরক্ষণ করা হয়। এই স্ট্রিংগুলি ডিকোড করা ইমেজ পূর্বরূপ দেখার জন্য, এর সামগ্রী যাচাই করার জন্য, বা এটি একটি স্বতন্ত্র ফাইল হিসাবে সংরক্ষণ করার জন্য প্রয়োজনীয়। কারণ Base64 প্রতিটি 3 বাইট বাইনারি ডেটার প্রতিনিধিত্ব করতে 4 ASCII অক্ষর ব্যবহার করে, এনকোড করা স্ট্রিং সর্বদা আসল ইমেজের চেয়ে প্রায় 33% বড় হয়।

এই টুলটি সম্পূর্ণ ডেটা URI (data:image/png;base64,...) এবং ডেটা: প্রিফিক্স ছাড়াই কাঁচা Base64 স্ট্রিং উভয়ই পার্স করে। কাঁচা স্ট্রিংগুলির জন্য, ইমেজ ফর্ম্যাট স্বয়ংক্রিয়ভাবে প্রথম কয়েকটি Base64 অক্ষর পরিদর্শন করে সনাক্ত করা হয়, যা ফাইলের ম্যাজিক বাইটের সাথে সংযুক্ত - উদাহরণস্বরূপ, iVBORw0KGgo সর্বদা একটি PNG ফাইল নির্দেশ করে। ডিকোড করা ইমেজ সরাসরি ব্রাউজারে রেন্ডার করা হয় এবং ফাইল হিসাবে ডাউনলোড করা যায়।

ডেভেলপারদের জন্য একটি সাধারণ পরিস্থিতি হল একটি REST API এর সাথে কাজ করা যা একটি প্রোফাইল ফটো বা ডকুমেন্ট থাম্বনেইল Base64 স্ট্রিং হিসাবে JSON ফিল্ডের মধ্যে প্রদান করে — উদাহরণস্বরূপ, {} বা {} সাথে ইমেজ। ইমেজ ব্যবহার করতে, আপনি ফিল্ড মান নিষ্কাশন করেন, ডেটা URI প্রিফিক্স কমা সহ সরান, তারপর বাকি Base64 অক্ষরগুলি atob() JavaScript এ বা Python এ base64.b64decode() এর মতো ডিকোডারের মধ্য দিয়ে পাঠান কাঁচা বাইট পুনরুদ্ধার করতে। এই টুলে সম্পূর্ণ মান পেস্ট করা এই সমস্ত ম্যানুয়াল পদক্ষেপ এড়িয়ে যায় এবং অবিলম্বে ইমেজ রেন্ডার করে।

কেন এই Base64 ইমেজ ডিকোডার ব্যবহার করবেন?

এই টুল Base64 ইমেজ ডেটা সম্পূর্ণভাবে আপনার ব্রাউজারে একটি দৃশ্যমান, ডাউনলোডযোগ্য ইমেজে রূপান্তরিত করে — কোনও আপলোড নেই, কোনও সার্ভার প্রক্রিয়াকরণ নেই, কোনও অ্যাকাউন্ট প্রয়োজন নেই।

তাৎক্ষণিক পূর্বরূপ
একটি Base64 স্ট্রিং বা ডেটা URI পেস্ট করুন এবং অবিলম্বে ডিকোড করা ইমেজ দেখুন। সার্ভার-সাইড প্রক্রিয়াকরণের জন্য অপেক্ষা করবেন না — ব্রাউজার স্থানীয়ভাবে ফলাফল ডিকোড করে এবং রেন্ডার করে।
🔒
গোপনীয়তা-প্রথম প্রক্রিয়াকরণ
আপনার ইমেজ ডেটা কখনও আপনার ডিভাইস ছেড়ে যায় না। ডিকোডিং সম্পূর্ণভাবে ব্রাউজারে নেটিভ JavaScript API ব্যবহার করে চলে। কোনও Base64 স্ট্রিং কোনও সার্ভারে প্রেরণ করা হয় না।
🖼️
স্বয়ংক্রিয় ফর্ম্যাট সনাক্তকরণ
PNG, JPEG, SVG, WebP, GIF, BMP, এবং ICO সমর্থন করে। MIME টাইপ ডেটা URI প্রিফিক্স থেকে বের করা হয় বা প্রিফিক্স না থাকলে Base64 ম্যাজিক বাইট থেকে স্বয়ংক্রিয়ভাবে সনাক্ত করা হয়।
📋
ফলাফল ডাউনলোড করুন
সঠিক এক্সটেনশন সহ ডিকোড করা ইমেজ ফাইল হিসাবে সংরক্ষণ করুন। ডাউনলোড সনাক্তকৃত ফর্ম্যাট ব্যবহার করে — কোনও ম্যানুয়াল পুনরায় নামকরণ .txt থেকে .png এ প্রয়োজন নেই।

Base64 ইমেজ ডিকোডিং ব্যবহারের ক্ষেত্র

ফ্রন্টএন্ড ডিবাগিং
HTML, CSS, বা JavaScript সোর্স কোডে এমবেড করা Base64-এনকোড করা ইমেজগুলি পরিদর্শন করুন। ডেপ্লয় করার আগে সঠিক ইমেজ রেন্ডার হচ্ছে তা যাচাই করতে ডেটা URI পেস্ট করুন।
API প্রতিক্রিয়া পরিদর্শন
REST এবং GraphQL API প্রায়ই JSON পেলোডে Base64 স্ট্রিং হিসাবে ইমেজ প্রদান করে — ব্যবহারকারী অবতার, ডকুমেন্ট থাম্বনেইল, বা QR কোড। সামগ্রী প্রত্যাশা পূরণ করে তা যাচাই করতে তাদের ডিকোড করুন।
ইমেল টেমপ্লেট উন্নয়ন
HTML ইমেলগুলি প্রায়ই বাহ্যিক-ইমেজ ব্লকিং বাইপাস করতে ডেটা URI হিসাবে ইমেজ এম্বেড করে। প্রাপকরা কী দেখবে তা পূর্বরূপ দিতে Base64 ডিকোড করুন পরীক্ষা ইমেল পাঠানো ছাড়াই।
ডেটাবেস রেকর্ড যাচাইকরণ
যখন ইমেজগুলি ডেটাবেস কলামে Base64 পাঠ্য হিসাবে সংরক্ষণ করা হয় (MongoDB, PostgreSQL পাঠ্য ফিল্ড), মাইগ্রেশন বা আমদানির পরে ডেটা অখণ্ডতা নিশ্চিত করতে নমুনা রেকর্ড ডিকোড করুন।
নিরাপত্তা বিশ্লেষণ
লগ, ইমেল, বা ওয়েব ট্রাফিকে সন্দেহজনক Base64 ইমেজ পেলোড পরিদর্শন করুন। প্রকৃত ইমেজ সামগ্রী এবং ফর্ম্যাট প্রকাশ করতে ডিকোডিং সাহায্য করে, ট্র্যাকিং পিক্সেল বা অপ্রত্যাশিত এম্বেডেড ডেটা সনাক্ত করতে সাহায্য করে।
শেখা এবং শিক্ষা
Base64 এনকোডিং কীভাবে কাজ করে তা বুঝুন একটি ইমেজ এনকোড করে, তারপর এটি আবার ডিকোড করে। আসল ফাইলটি রাউন্ড-ট্রিপড ফলাফলের সাথে তুলনা করুন যাচাই করতে যে Base64 একটি বেদনাহীন এনকোডিং।

ইমেজের জন্য ডেটা URI কাঠামো

একটি ডেটা URI ইমেজের ধরন এবং এনকোড করা সামগ্রী একটি একক স্ট্রিংয়ে প্যাকেজ করে। প্রতিটি উপাদান সঠিক ডিকোডিংয়ের জন্য অপরিহার্য: স্কিম (data:) সংকেত দেয় যে URL বাহ্যিক সম্পদের রেফারেন্সের পরিবর্তে স্ব-নিহিত; MIME টাইপ (যেমন image/png) রেন্ডারারকে কাঁচা বাইট ব্যাখ্যা করার সময় কোন ফর্ম্যাট ব্যবহার করতে হবে তা বলে; ;base64, মার্কার Base64-এনকোড করা সামগ্রীকে সাধারণ পাঠ্য ফর্ম্যাটের জন্য শতাংশ-এনকোডিং ব্যবহার করে এমন ডেটা URI থেকে আলাদা করে। Base64 পেলোড নিজেই একটি বা দুটি = প্যাডিং অক্ষর দিয়ে শেষ হতে পারে — এগুলি প্রয়োজন যখন ইনপুট বাইট গণনা তিনের একাধিক নয়, এনকোড করা দৈর্ঘ্য সর্বদা চারের একাধিক নিশ্চিত করে। এই উপাদানগুলির যে কোনও একটি বাদ দেওয়া বা বাধাগ্রস্ত করা ডিকোডিং ব্যর্থ হতে বা একটি দুর্নীতিগ্রস্ত ইমেজ উত্পাদন করে।

উপাদানবর্ণনা
data:URI scheme identifier
image/pngMIME type declaring the image format
;base64,Encoding declaration (always base64 for binary)
iVBORw0KGgo...Base64-encoded pixel data

Base64 থেকে ইমেজ ফর্ম্যাট সনাক্ত করা

যখন একটি Base64 স্ট্রিং ডেটা: প্রিফিক্সের অভাব রয়েছে, ইমেজ ফর্ম্যাট প্রথম কয়েকটি অক্ষর পরিদর্শন করে সনাক্ত করা যায়। এই অক্ষরগুলি ফাইলের ম্যাজিক বাইটের সাথে সংযুক্ত — প্রতিটি ইমেজ ফাইলের শুরুতে নির্দিষ্ট বাইট সিকোয়েন্স যা ফর্ম্যাট সনাক্ত করে:

ফর্ম্যাটBase64 প্রিফিক্সহেক্স স্বাক্ষরMIME টাইপ
PNGiVBORw0KGgo89 50 4E 47image/png
JPEG/9j/FF D8 FFimage/jpeg
GIFR0lGOD47 49 46 38image/gif
WebPUklGR52 49 46 46image/webp
SVGPHN2Zy3C 73 76 67 (text)image/svg+xml
BMPQk42 4Dimage/bmp
ICOAAABAA00 00 01 00image/x-icon

কোড উদাহরণ

জনপ্রিয় ভাষা এবং পরিবেশে Base64 ইমেজ স্ট্রিংগুলি ইমেজ ফাইলে ডিকোড করার বিষয়ে:

JavaScript (browser)
// Decode a Base64 data URI to a Blob and create a download link
const dataUri = 'data:image/png;base64,iVBORw0KGgo...'

// Method 1: fetch API (simplest)
const res  = await fetch(dataUri)
const blob = await res.blob()
// blob.type → "image/png", blob.size → 2048

// Method 2: manual decode for older environments
const [header, b64] = dataUri.split(',')
const mime    = header.match(/:(.*?);/)[1]   // → "image/png"
const binary  = atob(b64)
const bytes   = Uint8Array.from(binary, c => c.charCodeAt(0))
const blob2   = new Blob([bytes], { type: mime })

// Create a download link
const url = URL.createObjectURL(blob)
const a   = document.createElement('a')
a.href = url
a.download = 'decoded.png'
a.click()
URL.revokeObjectURL(url)
Python
import base64
import re

data_uri = 'data:image/png;base64,iVBORw0KGgo...'

# Parse the data URI
match = re.match(r'data:(image/[\w+.-]+);base64,(.+)', data_uri)
mime_type = match.group(1)    # → "image/png"
b64_data  = match.group(2)

# Decode and write to file
image_bytes = base64.b64decode(b64_data)
ext = mime_type.split('/')[1].replace('jpeg', 'jpg').replace('svg+xml', 'svg')

with open(f'output.{ext}', 'wb') as f:
    f.write(image_bytes)
# → writes output.png (byte-for-byte identical to the original)

# Decode raw Base64 (no data: prefix)
raw_b64 = 'iVBORw0KGgo...'
image_bytes = base64.b64decode(raw_b64)
Node.js
import { writeFileSync } from 'fs'

const dataUri = 'data:image/png;base64,iVBORw0KGgo...'

// Extract MIME type and Base64 payload
const [meta, b64] = dataUri.split(',')
const mime = meta.match(/:(.*?);/)[1]  // → "image/png"

// Decode to Buffer and save
const buffer = Buffer.from(b64, 'base64')
writeFileSync('output.png', buffer)
// → output.png (identical to the original file)

// Validate by checking magic bytes
console.log(buffer.subarray(0, 4))
// PNG → <Buffer 89 50 4e 47>  (\x89PNG)
// JPEG → <Buffer ff d8 ff e0>
CLI (bash)
# Decode a raw Base64 string to an image file (Linux)
echo 'iVBORw0KGgo...' | base64 -d > output.png

# Decode a raw Base64 string to an image file (macOS)
echo 'iVBORw0KGgo...' | base64 -D > output.png

# Extract Base64 from a data URI and decode
echo 'data:image/png;base64,iVBORw0KGgo...' | \
  sed 's/^data:.*base64,//' | base64 -d > output.png

# Identify the image format from the decoded file
file output.png
# → output.png: PNG image data, 64 x 64, 8-bit/color RGBA

প্রায়শই জিজ্ঞাসিত প্রশ্ন

একটি ডেটা URI এবং কাঁচা Base64 স্ট্রিংয়ের মধ্যে পার্থক্য কি?
একটি ডেটা URI MIME টাইপ এবং এনকোডিং ঘোষণা করে এমন একটি প্রিফিক্স অন্তর্ভুক্ত করে: data:image/png;base64,iVBORw0KGgo.... একটি কাঁচা Base64 স্ট্রিং মেটাডেটা ছাড়াই শুধুমাত্র এনকোড করা বাইট (iVBORw0KGgo...) ধারণ করে। এই টুল উভয় ফর্ম্যাট গ্রহণ করে। যখন আপনি একটি কাঁচা স্ট্রিং পেস্ট করেন, এটি Base64 ম্যাজিক বাইট থেকে স্বয়ংক্রিয়ভাবে ইমেজ ফর্ম্যাট সনাক্ত করে।
ডিকোডিং Base64 ইমেজ গুণমান পরিবর্তন করে?
না। Base64 একটি বেদনাহীন এনকোডিং যা বাইনারি ডেটা ASCII পাঠ্যে রূপান্তরিত করে এবং একটি একক বাইট পরিবর্তন না করে ফিরে আসে। ডিকোড করা ইমেজ আসল ফাইলের সাথে বাইট-সঠিক অনুরূপ। আপনি যে কোনও গুণমান পার্থক্য লক্ষ্য করেন তা ইমেজ ফর্ম্যাট নিজেই থেকে আসে (যেমন এনকোডিং আগে প্রয়োগ করা JPEG সংকোচন), Base64 ডিকোড পদক্ষেপ থেকে নয়।
আমি বলতে পারি Base64 ইমেজ কি ফর্ম্যাট?
যদি স্ট্রিং data:image/png;base64 দিয়ে শুরু হয়, ফর্ম্যাট MIME টাইপে ঘোষণা করা হয়। কাঁচা Base64 স্ট্রিংগুলির জন্য, প্রথম কয়েকটি অক্ষর পরিদর্শন করুন: iVBORw0KGgo PNG নির্দেশ করে, /9j/ JPEG নির্দেশ করে, R0lGOD GIF নির্দেশ করে, এবং UklGR WebP নির্দেশ করে। এই প্রিফিক্সগুলি প্রতিটি ফর্ম্যাটের ম্যাজিক বাইটের সাথে সংযুক্ত।
কেন আমার Base64 স্ট্রিং ডিকোড করতে ব্যর্থ হয়?
সাধারণ কারণগুলি অন্তর্ভুক্ত করে ট্রাঙ্কেট করা ডেটা (স্ট্রিং কপি-পেস্ট করার সময় কাটা হয়েছে), ভুল অক্ষর (Base64 A-Z, a-z, 0-9, +, / এবং প্যাডিংয়ের জন্য = ব্যবহার করে), এম্বেড করা শ্বেতস্থান বা লাইন ব্রেক, এবং একটি অনুপস্থিত বা বিকৃত ডেটা URI প্রিফিক্স। এই টুল স্বয়ংক্রিয়ভাবে শ্বেতস্থান সরায়, কিন্তু ট্রাঙ্কেট করা বা দুর্নীতিগ্রস্ত ডেটা পুনরুদ্ধার করা যায় না।
বিশ্বস্ত নয় এমন উৎস থেকে Base64 ইমেজ ডিকোড করা নিরাপদ?
এই টুল ব্রাউজার স্যান্ডবক্সে ইমেজ ডিকোড এবং রেন্ডার করে, যা তাদের আপনার সিস্টেম থেকে বিচ্ছিন্ন করে। তবে SVG ইমেজগুলি এম্বেড করা JavaScript ধারণ করতে পারে। আধুনিক ব্রাউজারগুলি img ট্যাগ বা ডেটা URI এর মাধ্যমে রেন্ডার করা SVG এ স্ক্রিপ্ট সম্পাদন ব্লক করে, তবে বিশ্বস্ত নয় এমন উৎস থেকে SVG এর সাথে সাবধানী থাকুন। টুল ডিকোড করা ইমেজ থেকে কোনও স্ক্রিপ্ট সম্পাদন করে না।
আমি ইন্টারনেট সংযোগ ছাড়াই Base64 ইমেজ ডিকোড করতে পারি?
হ্যাঁ, একবার পৃষ্ঠা লোড হয়ে গেলে। সমস্ত ডিকোডিং স্থানীয়ভাবে আপনার ব্রাউজারে নেটিভ JavaScript API (atob, Uint8Array, Blob) ব্যবহার করে চলে। ডিকোড প্রক্রিয়া সময় কোনও নেটওয়ার্ক অনুরোধ করা হয় না। টুল অফলাইনে অভিন্ন কাজ করে।
এই টুল সর্বাধিক Base64 স্ট্রিং দৈর্ঘ্য কি হ্যান্ডেল করতে পারে?
ব্যবহারিক সীমা আপনার ব্রাউজারের স্মৃতির উপর নির্ভর করে। বেশিরভাগ আধুনিক ব্রাউজারগুলি সমস্যা ছাড়াই বেশ কয়েকটি মেগাবাইটের ডেটা URI হ্যান্ডেল করে। খুব বড় ইমেজের জন্য (10 MB+ এনকোড করা), আপনি ধীর রেন্ডার অনুভব করতে পারেন। সেই আকারে, Node.js বা Python এর সাথে প্রোগ্রামগতভাবে ডিকোডিং এবং সরাসরি একটি ফাইলে লেখা ব্রাউজার-ভিত্তিক টুল ব্যবহার করার চেয়ে বেশি দক্ষ।