GraphicsMagick का उपयोग करना, पारदर्शिता के साथ एक रंग को बदलना काफी आसान है ...
gm convert -transparent magenta src.png dst.png
दुर्भाग्य से, मैं सटीक विपरीत करने के लिए एक सरल तरीका नहीं समझ सकता। अगर मेरे पास अल्फा-चैनल पारदर्शिता के साथ एक छवि फ़ाइल है, तो मैं इसे निरंतर-रंग की पृष्ठभूमि पर कैसे बनाऊं तो अब निरर्थक अल्फा चैनल को छोड़ दें? पृष्ठभूमि का रंग उन पिक्सेल को प्रभावित करना चाहिए जो आंशिक रूप से पारदर्शी होने के साथ-साथ पूरी तरह से पारदर्शी थे।
मैंने + मैट विकल्प देखा है, लेकिन यह शाब्दिक रूप से अल्फा परत को त्यागता है - आम तौर पर रद्दी रंग के पिक्सल को छोड़कर जहां पारदर्शिता थी, उदा। उपयोग करने के लिए पृष्ठभूमि का रंग निर्दिष्ट करने के लिए -background विकल्प का उपयोग करना।
एकमात्र तरीका जो मैंने अब तक प्रबंधित किया है, वह कई कॉल का उपयोग कर रहा है - एक ठोस-रंग आयत छवि फ़ाइल उत्पन्न करने के लिए, दूसरा ठोस रंग छवि के साथ मूल छवि को संयोजित करने के लिए, और अल्फा चैनल को छोड़ने के लिए एक तीसरा। यह पागल लगता है - निश्चित रूप से यह एक काफी सरल कॉल के साथ संभव होना चाहिए?
मैं वर्तमान में GraphicsMagick का उपयोग करता हूं, लेकिन कोई प्रतिबद्धता नहीं है - अगर यह चीजें आसान बनाता है तो मैं ImageMagick पर स्विच करूंगा।
संपादित करें
जब मैं कहता हूं "पृष्ठभूमि का रंग पिक्सेल को प्रभावित करना चाहिए जो आंशिक रूप से पारदर्शी होने के साथ-साथ पूरी तरह से पारदर्शी है।", मेरा मतलब है कि परिणाम स्पष्ट रूप से होना चाहिए जो मैं सामान्य रूप से एक ठोस रंग की पृष्ठभूमि पर एक पारदर्शी स्प्राइट को ब्लाइट करने से उम्मीद करूंगा। आंशिक रूप से पारदर्शी पिक्सल को मिश्रित किया जाना चाहिए।
इसका मतलब यह है कि अगर मैंने प्रक्रिया को उलट दिया है - पृष्ठभूमि रंग की कुंजी को पारदर्शिता में बदल दिया है - मैं मूल छवि के चारों ओर एक प्रभामंडल देखने की उम्मीद करूंगा, जहां पृष्ठभूमि का रंग पिक्सेल में मिश्रित होता है, इसलिए रंग कुंजी ठीक से मेल नहीं खाती और इसलिए वापस पारदर्शिता में परिवर्तित नहीं है। यह नहीं है कि ज्यादातर लोग उस कारण के लिए क्या चाहते हैं। हालांकि, मैं यही चाहता हूं, हालांकि, मैं बैकग्राउंड को ट्रांसपेरेंसी में नहीं बदलूंगा - अगर जरूरत पड़ी तो मैं ओरिजिनल ट्रांसपेरेंसी वाली ऑरिजनल इमेज भी ले लूंगा।