কেন স্বচ্ছ PNG সাদা হয়ে যায় (ও ঠিক করার উপায়)
স্বচ্ছ PNG সাদা হয়ে যাচ্ছে? JPEG রি-এনকোডে, প্রিন্ট প্রিসেটে, ইমেইলে ও আপলোডে নিঃশব্দে আলফা হারিয়ে যায়। পাঠানোর আগে 30 সেকেন্ডের টেস্টেই ধরা পড়বে।
- transparent png
- alpha channel
- png vs jpeg
- background removal
- file formats
- webp
- exporting
- design workflow

আপনি একটি প্রোডাক্ট শটের ব্যাকগ্রাউন্ড সরিয়েছেন, সত্যিকারের স্বচ্ছ ব্যাকগ্রাউন্ডসহ একটি PNG সেভ করেছেন, এবং সেটা একটা স্লাইডে বসিয়েছেন। সেটা এসে পৌঁছালো একটা সাদা বাক্সের মধ্যে। অথবা ডেকে ঠিকঠাক দেখাচ্ছিল, কিন্তু এক্সপোর্ট করা PDF-এ সাদা হয়ে গেল।
ফাইলটা প্রায় নিশ্চিতভাবেই ঠিক আছে। স্বচ্ছতা ততক্ষণই টিকে থাকে যতক্ষণ আপনার আর দর্শকের মাঝে থাকা প্রতিটি প্রোগ্রাম সেটা বহন করতে রাজি থাকে, আর তাদের বেশ কয়েকটা নিঃশব্দে তা করে না। কিছুই আপনাকে সতর্ক করে না, কারণ সফটওয়্যারের দৃষ্টিকোণ থেকে কিছুই ভুল হয়নি। একটাই নিয়ম প্রায় প্রতিটি ক্ষেত্র ব্যাখ্যা করে।
JPEG-এ কোনো আলফা চ্যানেল নেই
একটা PNG প্রতিটি পিক্সেলের রঙের পাশাপাশি একটা আলফা মান সংরক্ষণ করতে পারে। আলফা মানে অস্বচ্ছতা (opacity): শূন্য হলে পুরোপুরি স্বচ্ছ, সর্বোচ্চ হলে পুরোপুরি অস্বচ্ছ। এটাই একমাত্র জিনিস যা একটা কাটআউটকে কাটআউট বানায়।
JPEG-এ এর সমতুল্য কিছু নেই। JPEG-এর কোথাও "এই পিক্সেলটা খালি" এই তথ্য রাখার জায়গা নেই, তাই যা কিছু JPEG-এ রি-এনকোড করে, তাকে ঠিক করতে হয় স্বচ্ছতার জায়গায় কী বসবে। এটা আপনার কাটআউটকে একটা নিরেট রঙের ওপর কম্পোজিট করে, সেই রঙটা স্থায়ীভাবে বসিয়ে দেয়, আর আলফা বাদ দিয়ে দেয়। ফলাফল হলো একটা রঙিন আয়তক্ষেত্রের ওপর আপনার প্রোডাক্টের সম্পূর্ণ বৈধ একটা ছবি।
সেই রঙটা সাধারণত সাদা হয়। কয়েকটা টুল এর বদলে কালো দিয়ে ভরে দেয়, যাতে উল্টো অভিযোগ তৈরি হয়: আপনার সাবজেক্টের চারপাশে একটা কালো আয়তক্ষেত্র। একটা দেখতে-একইরকম সমস্যা আসলে ফ্ল্যাটেনিং-ই নয় — ডার্ক মোডে চলা কোনো ইমেইল ক্লায়েন্টে একটা গাঢ় রঙের লোগো মিলিয়ে যাওয়া। সেখানে স্বচ্ছতা ঠিক যেভাবে চাওয়া হয়েছিল সেভাবেই কাজ করছে, আর গাঢ় ব্যাকগ্রাউন্ডটাই ভেতর দিয়ে দেখা যাচ্ছে। এর সমাধান হলো চিহ্নটার পেছনে একটা হালকা রঙের প্লেট বসানো, বা গাঢ় ব্যাকগ্রাউন্ডের জন্য তৈরি হালকা রঙের একটা ভার্সন তৈরি করা, নতুন করে এক্সপোর্ট করা নয়।
আলফা কোথায় টিকে থাকে, আর কোথায় হারিয়ে যায়
অ্যাপগুলো মুখস্থ করার বদলে, রি-এনকোড ধাপ চিনতে শিখুন: যখনই কোনো প্রোগ্রাম আপনার পিক্সেলগুলো পড়ে আর সেগুলো আবার লিখে ফেলে, তখনই আপনার আলফা চ্যানেল নতুন করে সিদ্ধান্তের মুখে পড়ে। একটা কাটআউট স্লাইডে পেস্ট করে পরে এক্সপোর্ট করা — এটাই বেশিরভাগ মানুষ যে ভার্সনটার মুখোমুখি হন।

- কোনো ডকুমেন্ট বা স্লাইডে পেস্ট করা। Word আর PowerPoint সাধারণত স্ক্রিনে স্বচ্ছতা ধরে রাখে; পেস্ট করাটা খুব কমই সমস্যা তৈরি করে, সমস্যা হয় এক্সপোর্টে।
- যেকোনো "Save as JPEG"। এতে ক্ষতি নিশ্চিত, নিঃশব্দ ক্ষতিসহ: কোনো টুল "ওয়েবের জন্য অপ্টিমাইজ" অপশন দিয়ে আপনার হয়ে নিজেই JPEG বেছে নেয়।
- PDF ও প্রিন্ট হ্যান্ডঅফ। PDF 1.4 থেকেই PDF স্বচ্ছতা বহন করে আসছে, আর প্রতিদিনের ব্যবহারের বেশিরভাগ এক্সপোর্টার সেটা ধরে রাখে। ঝুঁকিটা থাকে প্রিন্ট প্রিসেটে: PDF/X-1a-এর মতো পুরনো প্রি-প্রেস স্ট্যান্ডার্ড লাইভ স্বচ্ছতার অনুমতি দেয় না — 2001 ভার্সনটা তৈরি হয়েছে PDF 1.3-এর ওপর, যাতে স্বচ্ছতার কোনো মডেলই নেই, আর 2003 ভার্সনে সেটা সরাসরি নিষিদ্ধ — তাই স্বচ্ছ যেকোনো কিছু পাতার ওপর ফ্ল্যাটেন হয়ে যায়। কোনো প্রিন্টার যদি একটা প্রিসেট নির্দিষ্ট করে দেয়, তাহলে জিজ্ঞেস করুন সেটা স্বচ্ছতার সঙ্গে কী করে।
- ইমেইল। বডি ইমেজ কিছু কম্পোজার পাঠানোর সময় রি-এনকোড করে দিতে পারে, অথবা গ্রহণের সময় কোনো ইমেজ প্রক্সির মাধ্যমে সার্ভ হতে পারে; আচরণ ক্লায়েন্ট অনুযায়ী আলাদা হয়, তাই ধরে নেওয়ার বদলে টেস্ট করাই ভালো। অ্যাটাচমেন্ট হিসেবে পাঠালে সেটা অক্ষত অবস্থায় পৌঁছানোর সম্ভাবনা অনেক বেশি নির্ভরযোগ্য।
- চ্যাট, সোশ্যাল ও স্টোরফ্রন্ট আপলোড। এই পাইপলাইনগুলো ব্যান্ডউইথ বাঁচাতে বা সবকিছুকে একটা নির্দিষ্ট ফরম্যাটে নর্মালাইজ করতে রি-এনকোড করে, আপনি যা-ই পাঠান না কেন।
স্প্রেডশিট নিজের মতো আলাদা একটা টেস্টের দাবি রাখে। সেলে, চার্টে বা শেপে থাকা কাটআউটগুলো সবসময় স্লাইডের কাটআউটের মতো আচরণ করে না, আর একটা পুরনো টেমপ্লেট একটা নতুন টেমপ্লেট থেকে আলাদা হতে পারে। একটা ফাইল কাজ করলে আর আরেকটা ব্যর্থ হলে, টেমপ্লেটকেই সন্দেহ করুন।
যেকোনো কিছু পাঠানোর আগে 30 সেকেন্ডের একটা টেস্ট
থাম্বনেইলকে বিশ্বাস করবেন না। এটা আপনার ফাইল ব্রাউজার যে ব্যাকগ্রাউন্ড ব্যবহার করে তার ওপর বসে — লাইট মোডে সাদা, ডার্ক মোডে গাঢ় — তাই একটা ফ্ল্যাটেন করা ছবি আর একটা স্বচ্ছ ছবি সেখানে দেখতে হুবহু একই রকম লাগতে পারে।

- ছবিটা কোনো উজ্জ্বল রঙের ওপর বসান। আপনার স্লাইড বা ডিজাইন টুলে একটা ম্যাজেন্টা রঙের আয়তক্ষেত্র আঁকুন আর তার ওপর কাটআউটটা বসিয়ে দিন। এখানে যে সাদা অংশ দেখবেন, সেটা স্থায়ীভাবে বসে গেছে।
- আসল ফরম্যাট নিশ্চিত করুন।
logo.pngনামের একটা ফাইল আসলে নাম পাল্টানো একটা JPEG-ও হতে পারে। Windows আর macOS দুটোই এক্সটেনশন দেখে লেবেল ঠিক করে, তাই ভুল লেবেলযুক্ত একটা ফাইলও PNG হিসেবে তালিকাভুক্ত থাকে। একটা ইমেজ এডিটরে সেটা খুলে সেখানে রিপোর্ট করা ফরম্যাটটা যাচাই করুন, অথবা আপনার ডিজাইন টুল থেকে নতুন করে পরিষ্কারভাবে PNG হিসেবে এক্সপোর্ট করুন। - ফাইল নয়, চ্যানেলটা টেস্ট করুন। ছবিটা যে পথে যাবে ঠিক সেই পথেই একটা ছবি পাঠান: নিজেকেই ইমেইল করুন, কোনো প্রাইভেট টেস্ট অ্যাকাউন্টে পোস্ট করুন, একটা আইটেম স্টোরফ্রন্ট আপলোডের মধ্য দিয়ে চালিয়ে দেখুন।
যদি এটা ধাপ এক পাস করে কিন্তু ধাপ তিন-এ ব্যর্থ হয়, তাহলে ফাইলটা ঠিক আছে আর চ্যানেলটাই সেটা ফ্ল্যাটেন করে দিচ্ছে।
কখন লড়াই থামিয়ে শুধু একটা রঙ বেছে নেবেন
যেসব গন্তব্য ফ্ল্যাটেন করে দেয়, সেখানে ফিল কালারটা নিজেই বেছে নিন। কাটআউটটা আপনার পছন্দের রঙের ওপর বসিয়েই এক্সপোর্ট করুন, তাহলে কম্পোজিটিং নিয়ে সিদ্ধান্ত নেওয়ার আর কিছুই বাকি থাকে না অন্য কারও জন্য।

remover.bg-এর এডিটর ঠিক এই কাজের জন্যই তৈরি: ব্যাকগ্রাউন্ড সরে যাওয়ার পর, সাবজেক্টটাকে একটা নিরেট রঙের ওপর, একটা কাস্টম রঙের ওপর, বা আপনার নিজের কোনো ছবির ওপর বসান, আর একটা ড্রপ শ্যাডো যোগ করুন যাতে এটাকে পেস্ট করা মনে না হয়। স্বচ্ছ PNG-টাকে আপনার মাস্টার ফাইল হিসেবে রেখে দিন আর প্রতিটা ফ্ল্যাটেন করা কপিকে একটা ডেলিভারি ফাইল হিসেবে দেখুন।
যেখানে গন্তব্য সেটা গ্রহণ করে, সেখানে WebP ছোট ফাইলেও PNG-এর মতো স্বচ্ছতা বহন করতে পারে — দেখুন আগে কনভার্ট না করেই WebP এক্সপোর্ট করা। কোনো কাজে আদৌ স্বচ্ছতার দরকার আছে কি না তা নিশ্চিত না হলে, আমাদের স্বচ্ছ PNG নিয়ে গাইড সেটা কভার করে; আর সাদা হয়ে যাওয়া জিনিসটা যদি হয় একটা ব্র্যান্ড চিহ্ন, তাহলে লোগো থেকে ব্যাকগ্রাউন্ড সরানো নিয়ে লেখাটায় ফ্ল্যাট আর্টওয়ার্কের জন্য দরকারি এজ-চেকগুলো আছে।
দুটো ফাইল, একটা সিদ্ধান্ত
স্বচ্ছ মাস্টার ফাইলটা রেখে দিন, আর যেখানেই একটা ফ্ল্যাটেন করা কপি লাগবে, সেখানে আপনার বেছে নেওয়া একটা রঙের ওপর সেটা বানিয়ে নিন। সাদা বাক্সটা কখনোই আপনার কাটআউটের কোনো ত্রুটি ছিল না — এটা ছিল একটা প্রোগ্রামের এমন একটা প্রশ্নের উত্তর দেওয়া, যেটা যে জিজ্ঞেস করা হচ্ছে তা আপনি বুঝতেই পারেননি।


