کسی عام تصویر کا ہر پکسل تین اعداد سے بیان کیا جاتا ہے: اس میں کتنا سرخ، سبز اور نیلا ہے۔ اس سے پتا چلتا ہے کہ پکسل کس رنگ کا ہے، لیکن یہ نہیں کہ اس کے آر پار دیکھا جا سکتا ہے یا نہیں۔ الفا چینل ہر پکسل کا چوتھا عدد ہے جو بالکل یہی کرتا ہے: یہ غیر شفافیت (opacity) محفوظ کرتا ہے، مکمل ٹرانسپیرنٹ سے لے کر مکمل غیر شفاف تک۔
جب لوگ "ٹرانسپیرنٹ بیک گراؤنڈ والی PNG" کی بات کرتے ہیں تو ان کا مطلب ایسی تصویر سے ہوتا ہے جس میں الفا چینل ہو اور بیک گراؤنڈ کے پکسلز کا الفا صفر ہو۔ یہ گائیڈ بتاتی ہے کہ یہ عدد کیسے کام کرتا ہے، سافٹ ویئر اسے کن دو طریقوں سے محفوظ کرتا ہے، کنارے کیوں بگڑتے ہیں، اور کیسے چیک کریں کہ فائل میں اصل میں کیا ہے۔
RGBA: ہر پکسل میں چار چینل
MDN الفا چینل کی سادہ تعریف دیتا ہے: رنگ چینلز (سرخ، سبز اور نیلا) سے بنتے ہیں، اور ایسے رنگ کو بیان کرنے کے لیے "جس کے پار کسی حد تک بیک گراؤنڈ نظر آ سکے"، ایک چوتھا چینل شامل کیا جاتا ہے۔ چاروں چینلز والی تصویر کو RGBA کہتے ہیں۔
یہ قدر کئی طریقوں سے لکھی جا سکتی ہے، اور سب کا مطلب ایک ہی ہے:
| لکھنے کا طریقہ | مکمل ٹرانسپیرنٹ | آدھا ٹرانسپیرنٹ | مکمل غیر شفاف |
|---|---|---|---|
| 8 بٹ عدد صحیح (زیادہ تر امیج فائلیں) | 0 | 128 | 255 |
| 16 بٹ عدد صحیح (16 بٹ PNG) | 0 | 32768 | 65535 |
| کسر (کمپوزٹنگ ریاضی، CSS) | 0 | 0.5 | 1 |
| فیصد (CSS) | 0% | 50% | 100% |
Hex لاحقہ (CSS #rrggbbaa) | 00 | 80 | ff |
PNG اسپیسیفکیشن اسے درست طور پر بیان کرتا ہے: صفر الفا قدر مکمل ٹرانسپیرنسی ہے، بٹ ڈیپتھ کی زیادہ سے زیادہ قدر مکمل غیر شفافیت ہے، اور درمیانی قدریں جزوی ٹرانسپیرنٹ پکسلز ہیں "جنہیں کسی بیک گراؤنڈ تصویر پر کمپوزٹ کیا جا سکتا ہے"۔
یہی درمیانی قدریں اہم ہیں۔ اچھا کٹ آؤٹ صرف "موضوع غیر شفاف، بیک گراؤنڈ ٹرانسپیرنٹ" نہیں ہوتا۔ کنارے کے پکسلز، خاص طور پر بالوں، فر، کپڑے، شیشے اور موشن بلر میں، جزوی ٹرانسپیرنٹ ہوتے ہیں، اور یہی موضوع کو نئے بیک گراؤنڈ پر فطری دکھاتا ہے، قینچی سے کٹا ہوا نہیں۔
ٹرانسپیرنٹ پکسل کیسے بنایا جاتا ہے
جب کوئی ایپ آپ کی تصویر کو کسی اور چیز کے اوپر رکھتی ہے تو وہ ہر پکسل کو اس کے پیچھے والی چیز سے ملاتی ہے۔ W3C Compositing and Blending اسپیسیفکیشن بنیادی فارمولا دیتا ہے:
result = Cs x as + Cb x ab x (1 - as)
Cs, as = color and alpha of your image (the source)
Cb, ab = color and alpha of what is behind it (the backdrop)غیر شفاف بیک ڈراپ کے عام کیس میں یہ ایک وزنی اوسط بن جاتا ہے۔ 0.3 الفا والا پکسل اپنے رنگ کا 30% دیتا ہے اور 70% بیک گراؤنڈ کو آر پار نظر آنے دیتا ہے۔
Straight بمقابلہ premultiplied الفا
جزوی ٹرانسپیرنٹ پکسل کا رنگ محفوظ کرنے کے دو طریقے ہیں، اور انہیں آپس میں ملا دینا گہرے یا چمکدار کناروں کی ایک پرانی وجہ ہے۔
Straight الفا (جسے unassociated یا non-premultiplied بھی کہتے ہیں) رنگ کو ایسے محفوظ کرتا ہے جیسے پکسل مکمل غیر شفاف ہو، اور غیر شفافیت الگ رکھتا ہے۔ آدھا ٹرانسپیرنٹ خالص سرخ پکسل سرخ 255، سبز 0، نیلا 0، الفا 128 کی صورت میں محفوظ ہوتا ہے۔
Premultiplied الفا (جسے associated بھی کہتے ہیں) رنگ کو پہلے سے الفا سے ضرب دے کر محفوظ کرتا ہے۔ وہی پکسل سرخ 128، سبز 0، نیلا 0، الفا 128 کی صورت میں محفوظ ہوتا ہے۔ PNG اسپیسیفکیشن کے الفاظ میں، ایسی تصویر "پہلے سے سیاہ بیک گراؤنڈ پر کمپوزٹ کی ہوئی ہے"۔
کوئی فائل کون سا طریقہ استعمال کرتی ہے، یہ فارمیٹ اور سافٹ ویئر پر منحصر ہے:
- PNG ہمیشہ straight الفا استعمال کرتا ہے۔ اسپیسیفکیشن یہ واضح طور پر کہتا ہے، اور بتاتا ہے کہ اس سے ایڈیٹر تصویر کی ٹرانسپیرنسی آسانی سے بدل سکتا ہے۔
- گرافکس پائپ لائنز، گیم انجن اور ویڈیو کمپوزٹنگ ٹولز اکثر اندرونی طور پر premultiplied الفا میں کام کرتے ہیں، کیونکہ بلینڈنگ کی ریاضی آسان ہوتی ہے اور فلٹرنگ بہتر چلتی ہے۔
مسائل تب شروع ہوتے ہیں جب ایک پروگرام premultiplied قدریں لکھتا ہے اور دوسرا انہیں straight کی طرح پڑھتا ہے۔ کناروں کے رنگ بہت گہرے آتے ہیں، جس سے پتلی سیاہ آؤٹ لائن بنتی ہے۔ الٹی سمت میں کنارے بہت چمکدار ہو جاتے ہیں۔ اگر کسی ایک ٹول کے ہر کٹ آؤٹ پر مسلسل گہری کنی نظر آئے تو سب سے پہلے premultiplication کی گڑبڑ پر شک کریں۔
کٹ آؤٹ میں ہالہ کیوں آتا ہے
ہالہ موضوع کے گرد نظر آنے والی ایک کنی ہے جو اس کا حصہ نہیں۔ اس کی چار عام وجوہات ہیں، اور ہر ایک کا اپنا حل ہے۔
1. پرانا بیک گراؤنڈ کنارے کے پکسلز میں گھلا ہے
کیمرا کبھی صاف سرحد کیپچر نہیں کرتا۔ سبز جھاڑی کے سامنے بالوں کی ایک لٹ ایسے پکسلز بناتی ہے جو کچھ بال اور کچھ جھاڑی ہوتے ہیں۔ اگر کٹ آؤٹ ان پکسلز کے اصل رنگ رکھے اور انہیں صرف نیم ٹرانسپیرنٹ بنائے تو سبز رنگ ملا رہتا ہے۔ سفید پر رکھنے پر موضوع کے گرد ہلکی سبز چمک آ جاتی ہے۔
اس کا حل ہے کلر ڈی کنٹیمینیشن: ہر کنارے والے پکسل کے اصل فور گراؤنڈ رنگ کا اندازہ لگا کر اسے لکھنا۔ Photoshop اسے "Select and Mask" ورک اسپیس میں "Decontaminate Colors" کہتا ہے، اور اوپن سورس rembg لائبریری میں decontaminate آپشن یہی کرتا ہے۔ یہ کناروں کے رنگ بدلتا ہے، ماسک کی شکل کبھی نہیں۔
2. ماسک بہت سخت ہے
اگر ماسک میں صرف مکمل غیر شفاف اور مکمل ٹرانسپیرنٹ پکسلز ہوں تو کنارے دندانے دار لگتے ہیں، اور اصل تصویر کی کوئی بھی antialiasing موضوع کے گرد بیک گراؤنڈ رنگ کی ایک پکسل کی لکیر چھوڑ دیتی ہے۔ بالوں جیسے نرم موضوعات کو اصل درمیانی قدروں والا نرم ماسک چاہیے۔
3. ٹرانسپیرنٹ پکسلز میں چھپے رنگ
straight الفا فائل میں صفر الفا والے پکسل کی بھی سرخ، سبز اور نیلی قدریں ہوتی ہیں۔ آپ انہیں دیکھ نہیں سکتے، لیکن تصویر کو ری سائز یا بلر کرنے سے پڑوسی پکسلز ملتے ہیں، اور اگر وہ چھپے رنگ سفید یا سیاہ ہوں تو وہ نظر آنے والے کنارے میں رس جاتے ہیں۔ اچھی امیج لائبریریاں ری سائز سے پہلے premultiply کر کے اور بعد میں واپس بدل کر اس سے بچتی ہیں۔
4. تصویر کو کسی رنگ پر فلیٹ کر دیا گیا
GIF اور پیلیٹ PNG اکثر صرف ہاں یا نہیں والی ٹرانسپیرنسی سپورٹ کرتے ہیں، اس لیے ٹولز محفوظ کرنے سے پہلے کنارے کو کسی میٹ رنگ، عام طور پر سفید، پر antialias کرتے ہیں۔ ایسی تصویر سفید پر ٹھیک لگتی ہے اور کسی بھی گہرے رنگ پر سفید جھالر دکھاتی ہے۔ اگر آپ کا کٹ آؤٹ گہرے بیک گراؤنڈ پر رہے گا تو اسے مکمل الفا کے ساتھ ایکسپورٹ کریں۔
ماسک، میٹ اور الفا: اصطلاحات
یہ الفاظ ایک دوسرے میں گھلے ہوئے ہیں اور ڈھیلے انداز میں استعمال ہوتے ہیں۔ عام طور پر ان کا مطلب یہ ہوتا ہے:
- الفا چینل: تصویر کی فائل کے اندر محفوظ غیر شفافیت کی قدریں، ہر پکسل کی ایک۔
- ماسک: ایک گرے اسکیل تصویر جو طے کرتی ہے کہ دوسری تصویر کے کون سے حصے نظر آئیں۔ Photoshop کے لیئر ماسک میں سفید دکھاتا ہے اور سیاہ چھپاتا ہے، اور گرے جزوی طور پر نظر آتے ہیں۔ ماسک کو اصل پکسلز چھوئے بغیر ایڈٹ کیا جا سکتا ہے، اسی لیے پروفیشنلز بیک گراؤنڈ مٹانے کے بجائے ماسک سے ہٹاتے ہیں۔
- میٹ: اسی خیال کے لیے فلم اور کمپوزٹنگ کی اصطلاح، ایک گرے اسکیل تصویر جو طے کرتی ہے کہ کیا رکھا جائے۔ "میٹنگ" بالوں جیسے مشکل کناروں کے لیے نرم، درست میٹ نکالنے کا مسئلہ ہے۔
- ٹرائی میپ: ایک موٹا تین حصوں والا نقشہ (یقینی فور گراؤنڈ، یقینی بیک گراؤنڈ، غیر یقینی) جسے کچھ میٹنگ الگورتھم نقطۂ آغاز کے طور پر استعمال کرتے ہیں۔
- بائنری یا ہارڈ ماسک: صرف سیاہ اور سفید، کوئی گرے نہیں۔ ڈبوں اور لوگو کے لیے ٹھیک، بالوں کے لیے کمزور۔
- کٹ آؤٹ: تیار نتیجہ، موضوع کے رنگ اور ایک الفا چینل۔
ماسک اور الفا چینل میں ایک ہی معلومات ہوتی ہے۔ بہت سے ٹولز دونوں میں سے کوئی بھی ایکسپورٹ کرنے دیتے ہیں: اندر بنے الفا والی ٹرانسپیرنٹ PNG، یا الگ سیاہ و سفید ماسک تصویر جسے آپ ایڈیٹر یا ویڈیو ٹول میں خود لگا سکتے ہیں۔
کون سے فارمیٹ الفا محفوظ کر سکتے ہیں
| فارمیٹ | الفا سپورٹ |
|---|---|
| PNG | مکمل الفا (8 یا 16 بٹ)، یا ایک ٹرانسپیرنٹ پیلیٹ رنگ |
| WebP | مکمل الفا، lossless اور lossy دونوں موڈز میں |
| AVIF | مکمل الفا |
| GIF | صرف ہاں یا نہیں: ایک پیلیٹ رنگ ٹرانسپیرنٹ نشان زد |
| JPEG | کوئی نہیں |
ان فارمیٹس کے مکمل موازنے کے لیے PNG بمقابلہ JPEG بمقابلہ WebP دیکھیں۔
کیسے چیک کریں کہ تصویر میں ٹرانسپیرنسی ہے یا نہیں
.png پر ختم ہونے والی فائل ٹرانسپیرنسی کا ثبوت نہیں۔ بہت سی PNG مکمل غیر شفاف ہوتی ہیں، اور آن لائن ملنے والی کچھ "ٹرانسپیرنٹ" تصاویر اصل میں JPEG ہوتی ہیں جن کے پکسلز میں گرے اور سفید چیکر بورڈ پینٹ ہوتا ہے۔ چیک کرنے کے قابل اعتماد طریقے یہ ہیں۔
آنکھ سے
تصویر کو گہرے اور ہلکے، دونوں بیک گراؤنڈز پر رکھیں، مثلاً کسی سلائیڈ یا ڈیزائن ٹول میں۔ اصل کٹ آؤٹ دونوں صورتوں میں موضوع کے گرد بیک گراؤنڈ کا رنگ دکھاتا ہے۔ اگر پھر بھی چیکر بورڈ نظر آئے تو وہ تصویر کا حصہ ہے، ٹرانسپیرنسی نہیں۔
ImageMagick سے
# Does the file have an alpha channel at all?
identify -format "%A\n" photo.png
# Is it fully opaque anyway? (true means no visible transparency)
identify -format "%[opaque]\n" photo.png%A ٹرانسپیرنسی چینل بتاتا ہے (چھپنے والا درست لفظ ImageMagick 6 اور 7 میں مختلف ہے)، اور %[opaque] حساب لگاتا ہے کہ ہر پکسل مکمل غیر شفاف ہے یا نہیں۔ آپ کو الفا چینل اور false چاہیے۔
Python اور Pillow سے
from PIL import Image
im = Image.open("photo.png")
print(im.mode) # RGBA or LA means an alpha channel
print(im.has_transparency_data) # True if the file carries any transparency info
if "A" in im.getbands():
lo, hi = im.getchannel("A").getextrema()
print("alpha range:", lo, hi) # lo == 255 means nothing is transparentextrema والی جانچ اس عام صورت کو پکڑتی ہے جس میں RGBA فائل کا ہر پکسل غیر شفاف ہوتا ہے۔
جب پلیٹ فارم الفا کو نظر انداز کرے
کچھ جگہیں ٹرانسپیرنسی ہٹا دیتی ہیں یا نظر انداز کرتی ہیں۔ Etsy کہتا ہے کہ ٹرانسپیرنٹ PNG سپورٹ نہیں اور ٹرانسپیرنٹ حصے سیاہ نظر آ سکتے ہیں، اور Amazon اور Walmart جیسے مارکیٹ پلیسز مین تصاویر ویسے بھی خالص سفید پر چاہتے ہیں۔ ایسی صورتوں میں کٹ آؤٹ کو خود بیک گراؤنڈ رنگ پر فلیٹ کریں تاکہ نتیجہ آپ کے اختیار میں رہے۔ اپنی ویب سائٹ، سلائیڈز اور ڈیزائن ٹولز میں الفا رکھیں۔
جلدی سے صاف الفا چینل حاصل کرنا
اگر آپ کو سخت ماسک کے بجائے نرم کناروں والے کٹ آؤٹ چاہئیں تو removebackground.dev مکمل الفا چینل والی ٹرانسپیرنٹ PNG یا WebP فائلیں بناتا ہے، اور اس کا API صرف گرے اسکیل ماسک بھی واپس کر سکتا ہے۔
سوالات
RGBA کا کیا مطلب ہے؟
سرخ (Red)، سبز (Green)، نیلا (Blue) اور الفا۔ پہلے تین پکسل کا رنگ بتاتے ہیں اور چوتھا اس کی غیر شفافیت، 0 (مکمل ٹرانسپیرنٹ) سے لے کر مکمل غیر شفاف کی زیادہ سے زیادہ قدر (8 بٹ تصاویر میں 255) تک۔
Straight اور premultiplied الفا میں کیا فرق ہے؟
Straight الفا پکسل کا پورا رنگ اور اس کی غیر شفافیت الگ الگ محفوظ کرتا ہے۔ Premultiplied الفا رنگ کو پہلے سے غیر شفافیت سے ضرب دے کر محفوظ کرتا ہے، جیسے اسے سیاہ پر کمپوزٹ کیا گیا ہو۔ PNG ہمیشہ straight الفا استعمال کرتا ہے؛ بہت سے رینڈرنگ اور ویڈیو ٹولز اندرونی طور پر premultiplied استعمال کرتے ہیں۔
میرے کٹ آؤٹ کے گرد سفید یا رنگین آؤٹ لائن کیوں ہے؟
عام طور پر پرانا بیک گراؤنڈ اب بھی کنارے کے پکسلز میں ملا ہوتا ہے، یا محفوظ کرنے سے پہلے تصویر کو سفید پر antialias کیا گیا تھا۔ کناروں کے رنگ ڈی کنٹیمینیٹ کرنا، نرم ماسک استعمال کرنا، اور میٹ رنگ کے بجائے مکمل الفا کے ساتھ ایکسپورٹ کرنا زیادہ تر مسائل حل کر دیتا ہے۔
کیا ماسک اور الفا چینل ایک ہی ہیں؟
ان میں ایک ہی معلومات ہوتی ہے: ہر پکسل کی ایک گرے اسکیل قدر جو بتاتی ہے کہ وہ کتنا نظر آتا ہے۔ الفا چینل تصویر کی فائل کے اندر محفوظ ہوتا ہے؛ ماسک عام طور پر الگ گرے اسکیل تصویر یا ایڈیٹر میں لیئر ماسک ہوتا ہے۔
کیسے پتا کروں کہ PNG واقعی ٹرانسپیرنٹ ہے؟
اسے گہرے اور ہلکے بیک گراؤنڈ پر رکھیں اور دیکھیں کہ بیک گراؤنڈ آر پار نظر آتا ہے یا نہیں۔ یا ImageMagick کا identify %[opaque] کے ساتھ چلائیں، یا Pillow میں الفا چینل کی کم از کم قدر دیکھیں؛ کم از کم 255 کا مطلب ہے کہ کچھ بھی ٹرانسپیرنٹ نہیں۔
اپنی تصویر پر آزمائیں
نئے اکاؤنٹس کو 50 مفت کریڈٹس ملتے ہیں۔ ہر تصویر کا 1 کریڈٹ، کوئی سبسکرپشن نہیں، اور کریڈٹس کبھی ختم نہیں ہوتے۔
پس منظر ہٹائیںذرائع
- MDN: Alpha (alpha channel) glossary entry
- W3C: Portable Network Graphics (PNG) Specification (Third Edition)
- W3C: Compositing and Blending Level 1, simple alpha compositing
- MDN: Image file type and format guide
- Adobe Help: Select and Mask in Photoshop
- Adobe: Remove background with AI in Photoshop (layer masks)
- rembg README: color decontamination and edge modes
- ImageMagick: Format and print image properties (escapes)
- Pillow: Image module reference
- Etsy Help: Requirements and best practices for images in your Etsy shop