PNG এর পূর্ণরূপ Portable Network Graphics। এটি ১৯৯০-এর দশকের মাঝামাঝি সময়ে তৈরি করা হয়েছিল এমন ডেভেলপারদের দ্বারা, যাদের GIF-এর বিকল্প দরকার ছিল, কারণ তখন GIF যে কম্প্রেশন পদ্ধতির উপর নির্ভর করত সেটি পেটেন্ট দ্বারা সুরক্ষিত ছিল। ফল হিসেবে পাওয়া যায় একটি ফ্রি, ভালোভাবে ডকুমেন্টেড ফরম্যাট, যা প্রতিটি পিক্সেলকে হুবহু আগের মতোই রেখে দেয়, পরে যেটি World Wide Web Consortium এবং ISO-এর একটি স্ট্যান্ডার্ড হিসেবে গ্রহণ করে। আজকে আপনি কিবোর্ডের স্ক্রিনশট কী, কোনো লোগো এক্সপোর্ট, অথবা স্প্রেডশিট থেকে সেভ করা কোনো চার্ট থেকে যা পান, সেটাই সাধারণত PNG।
PNG কীভাবে তার ছবি সংরক্ষণ করে
PNG হল লসলেস (lossless): ফাইলটি কম্প্রেস করা হয়, কিন্তু কিছুই বাদ পড়ে না, আর সেটি ডিকোড করলে একদম আসল পিক্সেলই ফিরে আসে। এটি দুই ধাপে কাজ করে। প্রথমে একটি ফিল্টারিং ধাপে প্রতিটি পিক্সেলের সারিকে প্রতিবেশী পিক্সেল থেকে পার্থক্য হিসেবে লেখা হয়, যা মসৃণ অংশগুলোকে ছোট মানের দীর্ঘ ধারায় পরিণত করে। তারপর একটি সাধারণ উদ্দেশ্যের কম্প্রেসর ওই সংখ্যাগুলোকে আরও সংকুচিত করে, যা ZIP আর্কাইভের মতো একই পদ্ধতি ব্যবহার করে।
একটি PNG অনেকগুলো চেইন-আকারের লেবেলযুক্ত ব্লক দিয়ে গঠিত, যেগুলোকে chunks বলা হয়। এর মধ্যে তিন ধরনের chunk বাধ্যতামূলক: একটি ছবিের সাইজ, রঙের ধরন এবং বিট ডেপথ বর্ণনা করে, একটি বা একাধিক কম্প্রেস করা পিক্সেল ডেটা বহন করে, আরেকটি শেষ চিহ্নিত করে। বাকিগুলো সবই ঐচ্ছিক, যা এই ফরম্যাটটিকে এক্সটেনসিবল করে। PNG গ্রেস্কেল, প্যালেটসহ ইনডেক্সড কালার, অথবা প্রতি চ্যানেলে ৮ বা ১৬ বিটের ফুল কালার সংরক্ষণ করতে পারে, আর এতে একটি সত্যিকারের আলফা চ্যানেল থাকে, যার মানে প্রতিটি পিক্সেল পুরোপুরি অস্বচ্ছ, পুরোপুরি স্বচ্ছ, বা মাঝামাঝি যেকোনো মাত্রায় হতে পারে। এ কারণেই নরম প্রান্ত থাকা লোগো ও ইন্টারফেস গ্রাফিক্সের জন্য PNG ব্যবহৃত হয়। বেস ফরম্যাটে শুধু একটি স্থির ছবি থাকে; অ্যানিমেশন আসে পরের এক্সটেনশন APNG-এর মাধ্যমে।
একটি PNG কী মেটাডাটা বহন করে
মেটাডেটা হল বর্ণনামূলক তথ্য, যা ফাইলের ভিতরে পিক্সেলের পাশাপাশি সংরক্ষিত থাকে। PNG এই তথ্যগুলো ঐচ্ছিক chunks-এ রাখে; টেক্সট প্লেইন হতে পারে, কম্প্রেস করা হতে পারে, বা ভাষার ট্যাগসহ থাকতে পারে যাতে একই ফিল্ড বিভিন্ন অনুবাদে দেখা যায়।
- রেজিস্টার্ড টেক্সট কীওয়ার্ড গুলো সবচেয়ে সহজ, এবং একটি রিপোর্ট এগুলোকে নামসহ তালিকাভুক্ত করে:
Title,Author,Description,Copyright,Creation Time,Software,Source,Comment,DisclaimerএবংWarning।Software-ই আপনি সবচেয়ে বেশি দেখেন, কারণ বেশিরভাগ এডিটর নিজেদের নাম এখানেই যোগ করে দেয়। - XMP, Adobe-এর XML-ভিত্তিক মেটাডেটা স্ট্যান্ডার্ড, ভাষা-ট্যাগযুক্ত একটি টেক্সট chunk-এর ভিতরে রাখা হয়। সাধারণত এখানেই ক্রিয়েটর, কীওয়ার্ড, রেটিং এবং কোন কোন প্রোগ্রাম ইমেজটি পরিবর্তন করেছে তার এডিট-হিস্টরি থাকে।
- EXIF, ক্যামেরা-মেটাডেটা স্ট্যান্ডার্ড, মূল স্পেসিফিকেশনের অংশ ছিল না, পরে একটি আলাদা chunk হিসেবে যোগ করা হয়। তাই একটি PNG-তে সম্পূর্ণ ক্যামেরা-ব্লক, সহ GPS কোরিডিনেটও থাকতে পারে, যদিও এটি সাধারণত তখনই থাকে যখন ফাইলটি কোনো ফটোগ্রাফ থেকে কনভার্ট করা হয়।
- রঙ ও ডিসপ্লে সম্পর্কিত chunks-ও মেটাডেটার মধ্যে পড়ে: এমবেডেড ICC কালার প্রোফাইল, গামা ও ক্রোমাটিসিটি মান, ব্যাকগ্রাউন্ড রঙ, এবং প্রতি মিটারে পিক্সেলের সংখ্যা রেকর্ড করা ফিজিক্যাল-রেজোলিউশন chunk, যেখান থেকেই ছবির DPI মানটি আসে।
কোনো স্ক্রিনশট বা এক্সপোর্ট করা গ্রাফিক সাধারণত ক্যামেরায় তোলা ছবির চেয়ে অনেক কম তথ্য প্রকাশ করে, কিন্তু ধরে নেবেন না যে PNG সবসময় বেনামি। একটি JPG-কে PNG-তে কনভার্ট করলে আসল EXIF এবং GPS ডেটা সরাসরি চলে আসতে পারে। কোনো এডিটরে প্রিফারেন্সে যদি আপনার নাম সেট করা থাকে, তাহলে তা স্বয়ংক্রিয়ভাবে author বা XMP creator ফিল্ডে লিখে দিতে পারে। আর Software এবং এডিট-হিস্টরি এন্ট্রিগুলো চুপচাপ জানিয়ে দেয় কোন প্রোগ্রাম, এবং কখনও কখনও তার কোন সংস্করণটি, ফাইলটি তৈরি করেছে।
কখন PNG ব্যবহার করবেন
যখনই পিক্সেলগুলো একদম হুবহু রাখতে হবে বা ইমেজে স্বচ্ছতা দরকার, তখন PNG ব্যবহার করুন: স্ক্রিনশট, ডায়াগ্রাম, চার্ট, লোগো, আইকন, ফ্ল্যাট-কালার আর্টওয়ার্ক এবং যেকোনো টেক্সট-সহ ছবি। ধারালো প্রান্তগুলো তেমনই ধারালো থাকে, আর বারবার সেভ করলেও ছবির গুণমান নষ্ট হয় না।
JPG-এর সঙ্গে তুলনায় বিনিময়টা সহজ। ফটোগ্রাফের ক্ষেত্রে PNG সাধারণত দৃশ্যমান বাড়তি সুবিধা ছাড়াই কয়েক গুণ বড় হয়, তাই ফটোগ্রাফ JPG বা WebP, HEIC-এর মতো নতুন ফরম্যাটে রাখাই ভালো। GIF-এর সঙ্গে তুলনায়, স্থির ছবির জন্য PNG পরিষ্কারভাবেই এগিয়ে: ২৫৬ শেডের বদলে পুরো রঙ, আর একটিমাত্র স্বচ্ছ রঙের বদলে যথাযথ আংশিক ট্রান্সপারেন্সি। GIF-এর একমাত্র বাকি সুবিধা হল অ্যানিমেশন।