রি-এনকোড কী রাখে, আর কী ফেলে দেয়
একটি ছবির ফাইল হলো পিক্সেল, সঙ্গে সেগুলো সম্পর্কে কিছু তথ্য: সংখ্যাগুলো কোন কালার স্পেসে মাপা, আলফা চ্যানেল আছে কি না, EXIF-এ ক্যামেরা কী রেকর্ড করেছে — মডেল, এক্সপোজার, তারিখ, প্রায়ই GPS স্থানাঙ্ক — আর GIF, WebP ও AVIF-এ একাধিক ফ্রেম আছে কি না। এখানকার প্রায় প্রতিটি কাজ ফাইলটি ডিকোড করে একটি নতুন ফাইল লেখে, আর এই প্রতিটি তথ্যের পরিণতি আলাদা।
প্রথম মোড় হলো লসি আর লসলেস। PNG ও BMP হুবহু পিক্সেল রাখে, তাই শতবার আবার সেভ করলেও কিছু বদলায় না। JPG, AVIF ও সাধারণ WebP এমন খুঁটিনাটি ফেলে দেয়, যা চোখ সহজে খেয়াল করে না, আর ফেলে দেওয়া অংশ চিরতরে হারিয়ে যায় — JPG-কে PNG-তে কনভার্ট করলে তা ফেরে না, শুধু আরও ক্ষতি থামে। এ কারণেই একটি JPEG দুবার সেভ করা একবার সেভ করার চেয়ে খারাপ: দ্বিতীয় এনকোড আগে থেকে কোয়ান্টাইজ করা পিক্সেলকে আবার কোয়ান্টাইজ করে, আর মাঝে ছবিটি ক্রপ বা রিসাইজ হলে নতুন ৮×৮ ব্লকের গ্রিড আর পুরোনোটার সঙ্গে মেলে না, তাই ত্রুটিগুলো পুনরাবৃত্তি না হয়ে জমতে থাকে। মূল ফাইলটি হাতে থাকলে সবসময় সেটি থেকেই কাজ করুন।
JPG স্ক্রিনশট কেন ভুল দেখায়, তার নির্দিষ্ট কারণ হলো ক্রোমা সাবস্যাম্পলিং। JPEG সাধারণত উজ্জ্বলতা রাখে পূর্ণ রেজোলিউশনে আর রং অর্ধেকে, যা ফটোগ্রাফে অদৃশ্য, কিন্তু লাল লেখা বা সরু রঙিন রেখায় স্পষ্ট। আপনার ছবি যদি স্ক্রিনশট, লোগো বা ডায়াগ্রাম হয়, তাহলে সঠিক লক্ষ্য PNG বা WebP, JPG নয়।
স্বচ্ছতার একটি গতি করতেই হয়। JPG-এ কোনো আলফা চ্যানেলই নেই, তাই PNG থেকে JPG আর AVIF থেকে JPG আপনার অগোচরে স্বচ্ছ পিক্সেলগুলো সাদা — বা কালো — করে না দিয়ে জিজ্ঞেস করে, সেগুলোর জায়গায় কোন রং বসবে। PNG, WebP ও AVIF সবগুলোতেই পূর্ণ আলফা থাকে, তাই PNG থেকে WebP আর ছবির ব্যাকগ্রাউন্ড রিমুভের কাটআউটগুলোর নরম কিনারা অক্ষত থাকে।
EXIF টেকে না। রি-এনকোড করে এমন প্রতিটি টুল — কনভার্ট, কমপ্রেস, রিসাইজ, ঘোরানো, ক্রপ — EXIF ব্লক ছাড়া একটি পরিষ্কার ফাইল লেখে, তাই ক্যামেরার মডেল, টাইমস্ট্যাম্প ও GPS লোকেশন বাদ পড়ে। ছবি প্রকাশের আগে ঠিক এটিই আপনি চান। EXIF-এর মধ্যে দেখার দিক থেকে গুরুত্বপূর্ণ একমাত্র তথ্য হলো অরিয়েন্টেশন, আর ছবি ঘোরানো আসল পিক্সেলগুলো সরিয়ে এটিকে পাশ কাটায়, তাই যে ভিউয়ার ফ্ল্যাগটি মানে আর যে মানে না — দুটিতেই ফলাফল সোজা দেখায়।
কালার প্রোফাইল বহন করা হয় না, রূপান্তর করা হয়। আপনার ব্রাউজার Display P3 বা Adobe RGB ফাইল আঁকার জন্য সেটিকে sRGB-তে ডিকোড করে, আর যে ফাইল আবার লেখা হয়, তাতে কোনো প্রোফাইল এমবেড করা থাকে না। সাধারণ স্ক্রিনে কিছুই বদলায় না; ওয়াইড-গ্যামাট স্ক্রিনে সবচেয়ে গাঢ় রংগুলো কেটে ছেঁটে যায়। TIFF থেকে JPG-ও একই পথে যায়, আর এ কারণেই স্টুডিওর CMYK TIFF বেরিয়ে আসে RGB হিসেবে — রং প্রুফ করার কাজ হলে ফাইলটি প্রিপ্রেস সফটওয়্যারেই রাখা উচিত।
অ্যানিমেশন স্থির ছবি হয়ে যায়। অ্যানিমেটেড GIF, WebP ও AVIF ফাইল কনভার্ট হয় তাদের প্রথম ফ্রেম হিসেবে। GIF থেকে PNG-এ মানুষ সাধারণত এটিই চান, আর বারো সেকেন্ডের একটি লুপ এতে ছাড়ার আগে এটি জেনে রাখা ভালো।
যেখানে ব্রাউজার সত্যিই ভুল টুল
আপনার ফাইল ব্যক্তিগত রাখার জন্যই এগুলো তৈরি, আর এর একটি মূল্য আছে। কাজের মাঝপথে আপনি নিজে আবিষ্কার করার চেয়ে আমরা এখানেই তা বলে দিতে চাই।
খুব বড় ছবি। প্রতিটি পিক্সেল আনকমপ্রেসড অবস্থায় আপনার ডিভাইসের মেমোরিতে রাখা হয় — ১০০ মেগাপিক্সেলের একটি ছবি কাঁচা RGBA হিসেবেই প্রায় ৪০০ MB, অন্য কিছু শুরু হওয়ার আগেই। এর কিছুটা বেশি হলে ট্যাবের জায়গা ফুরিয়ে যায়, আর ৪× আপস্কেল আরও আগেই সীমায় পৌঁছায় — সাধারণ ল্যাপটপে মোটামুটি ৬০০০×৬০০০ আউটপুটে। ডিস্ক থেকে টাইল ধরে স্ট্রিম করে এমন ডেস্কটপ টুলের এমন কোনো সীমা নেই।
ক্যামেরার RAW। CR2, NEF, ARW ও DNG ফাইল হলো সেন্সরের ডেটা আর ডেভেলপ করার একটি রেসিপি, তৈরি ছবি নয়, আর এখানকার কোনো কিছুই এগুলো খোলে না। আগে আপনার ক্যামেরার সফটওয়্যার থেকে JPEG বা TIFF এক্সপোর্ট করুন, অথবা darktable বা RawTherapee ব্যবহার করুন — দুটিই ফ্রি, আর এ কাজে যেকোনো ওয়েব পেজের চেয়ে অনেক ভালো।
প্রিন্টের রং। স্পট কালার, CMYK সেপারেশন, ICC রেন্ডারিং ইনটেন্ট ও সফট-প্রুফিং প্রিপ্রেস সফটওয়্যারের এলাকা। ব্রাউজার যাতে আঁকতে পারে, সেজন্য আমরা রংকে sRGB-তে রূপান্তর করি; রং নিয়ন্ত্রণ করি না।
একসাথে অনেক ফাইল ও অটোমেশন। এই টুলগুলো চলে যখন কেউ ক্লিক করেন। নির্দিষ্ট সময়সূচিতে চল্লিশ হাজার প্রোডাক্টের ছবি রিসাইজ করা সার্ভারে কমান্ড-লাইন টুলের কাজ, আর ফ্রি টুলগুলো চমৎকার: প্রায় সবকিছুর জন্য ImageMagick, বিশাল ফাইলে গতি ও কম মেমোরির জন্য libvips, শেষ বাইটটুকু পর্যন্ত কমাতে mozjpeg ও oxipng, আর ফ্রেম আছে এমন যেকোনো কিছুর জন্য ffmpeg।
ব্যাকগ্রাউন্ড রিমুভের সত্যিকারের একটি সীমা আছে। এটি একবার ডাউনলোড হয়, ৪০–৮৫ MB, আর স্পষ্ট বিষয়বস্তুতে, চুল ও লোমসহ, সত্যিই ভালো কাজ করে, কিন্তু স্পষ্ট বিষয়বস্তুহীন এলোমেলো দৃশ্যে সত্যিই বিভ্রান্ত হয়। কোনো পরিমাণ লোকাল কম্পিউটিং এটি ঠিক করতে পারে না; এটি পদ্ধতিরই সীমা, আর পেইড সার্ভিসগুলোরও একই সীমা আছে।
একই রকম শোনায় এমন টুলগুলোর মধ্যে বেছে নেওয়া
ছবির সাইজ কমানো বনাম ছবি রিসাইজ। কমপ্রেস মাপ ঠিক রাখে আর প্রতি পিক্সেলে কম বাইট খরচ করে। রিসাইজ মাপ বদলায়, যাতে পিক্সেলই বাদ পড়ে। ৪০০০px-এর একটি ছবিকে ২০০ KB করতে হলে আগে রিসাইজ, পরে কমপ্রেস — এটি প্রতিবারই শুধু কমপ্রেসের চেয়ে ভালো ফল দেয় — আর যে অর্থে গুরুত্বপূর্ণ, সে অর্থে রিসাইজ লসলেস, কারণ যে পিক্সেলগুলো থাকে, সেগুলো মান হারায় না, ঠিকভাবে রিস্যাম্পল হয়।
ছবি রিসাইজ বনাম ছবি বড় করা (আপস্কেল)। দুটিই মাপ বদলায়, আর দুটি টিউন করা উল্টো দিকে। রিসাইজ হলো ছোট করার জন্য, Lanczos ফিল্টারসহ, যাতে ছোট করার পরও খুঁটিনাটি টিকে থাকে। আপস্কেল হলো ২× ও ৪× বড় করার জন্য, পরে কিনারা বুঝে শার্প করার একটি ধাপসহ, কারণ বড় করলে ছবি সবসময় কিছুটা নরম হয়ে যায়। কোনোটিই নতুন খুঁটিনাটি বানায় না — যা বের হয়, তা আপনার ছবিতেই ছিল।
ICO-তে কনভার্ট বনাম ফেভিকন জেনারেটর। ICO-তে কনভার্ট ১৬, ৩২, ৪৮ ও ২৫৬px সংস্করণসহ একটি .ico ফাইল তৈরি করে, যা একটি Windows অ্যাপ্লিকেশন বা শর্টকাটের দরকার। ফেভিকন জেনারেটর পুরো আধুনিক সেটটি তৈরি করে — .ico, আলাদা আলাদা PNG, Apple touch icon, একটি ওয়েব ম্যানিফেস্ট আর HTML ট্যাগ — ZIP করা, যা একটি ওয়েবসাইটের দরকার।
PNG থেকে WebP বনাম JPG থেকে AVIF। দুটিই ওয়েবের ছবিকে মূলটির চেয়ে ছোট করে, আর দুটি ভিন্ন ধরনের সোর্সের জন্য উপযুক্ত। WebP স্বচ্ছতা রাখে আর মুহূর্তেই এনকোড হয়, তাই স্ক্রিনশট, লোগো ও UI গ্রাফিক্সের জন্য এটিই সঠিক লক্ষ্য। AVIF ফটোগ্রাফকে আরও বেশি কমপ্রেস করে — সাধারণত সমতুল্য JPG-এর চেয়ে ৪০–৬০ শতাংশ ছোট — তবে AV1 এনকোডিং ভারী কাজ, তাই প্রতিটি বড় ছবিতে কয়েক সেকেন্ড লাগবে।
ছবি ঝাপসা করা বনাম ছবির ব্যাকগ্রাউন্ড রিমুভ। ঝাপসা করা আপনার আঁকা একটি এলাকার তথ্য নষ্ট করে দেয়: মুখ, নম্বর প্লেট, অ্যাকাউন্ট নম্বর। ব্যাকগ্রাউন্ড রিমুভ বিষয়বস্তুকে ব্যাকগ্রাউন্ড থেকে আলাদা করে ব্যাকগ্রাউন্ড পুরোপুরি মুছে দেয়। লক্ষ্য যদি কাটআউট নয়, তথ্য গোপন করা হয়, তাহলে ঝাপসা করুন — আর লেখার ওপর মোটা পিক্সেলেশন ব্যবহার করুন, কারণ প্রকাশিত গবেষণায় হালকা পিক্সেলেশন উল্টে ফেলা গেছে।