2011-02-03 17 views
5

मेरे पास कुछ पीएनजी फाइलें हैं जिन्हें मैं 256 रंगों में बदलना चाहता हूं (यानी जीआईएफ-जैसे)। प्रत्येक छवि में पारदर्शिता होती है, लेकिन जब मैं कनवर्ट करने का प्रयास करता हूं तो मैं हमेशा परिणामस्वरूप छवि पर एक काला पृष्ठभूमि के साथ समाप्त होता हूं।ImageMagick: रंगों को कैसे कम करें लेकिन पारदर्शिता रखें?

convert file.png -colors 255 file256.png 

मैं 255 रंग का उपयोग कर रहा है, क्योंकि मैंने पढ़ा है कि आप अल्फ़ा चैनल के लिए एक रंग की जरूरत है (हालांकि मुझे नहीं लगता कि PNG का करने के लिए आवेदन करना चाहिए):

यहाँ मेरे वर्तमान आदेश है। मैंने -background none, -channel RGBA और -matte जैसे कई अन्य विकल्पों की कोशिश की है लेकिन कुछ भी काम नहीं कर रहा है।

दिलचस्प है, इस आदेश का काम किया है जब ग्रेस्केल में कनवर्ट:

convert file.png -channel RGBA -matte -colorspace gray file256.png 

यह पारदर्शी पृष्ठभूमि रखा। लेकिन के साथ -colorspace gray को प्रतिस्थापित नहीं करता है।

उत्तर

6

256 रंगों के बजाय 255 का उपयोग करने का कारण यह है कि एक रंग को "बाइनरी"/"बूलियन" पारदर्शिता के लिए आरक्षित किया जाना चाहिए, यानी उस रंग के सभी पिक्सल को पूरी तरह से पारदर्शी के रूप में व्याख्या किया जाता है। वहां (आमतौर पर) 256-रंग/पैलेट-आधारित छवियों वाले अल्फा चैनल जैसी कोई चीज़ नहीं है। संदर्भ के लिए, आप ImageMagick उपयोग अनुभागों को Color Quantization and Transparency और GIF Boolean Transparency के बारे में पढ़ना चाह सकते हैं। उस ने कहा, यह अल्फा चैनल के साथ अपने 32-बिट सच्चे-रंग पीएनजी को पैलेट के साथ 8-बिट पीएनजी में परिवर्तित करना चाहिए, जहां इनपुट छवि में पूरी तरह से पारदर्शी सभी पिक्सेल आउटपुट छवि में पूरी तरह से पारदर्शी हैं:

convert file.png png8:file256.png 

png8 छवि मैगिक को एक जीआईएफ-जैसे "वैकल्पिक बाइनरी पारदर्शिता के साथ अनुक्रमित 8-बिट" लिखने के लिए निर्देश देता है और 255 "असली" रंगों का उपयोग करने का तात्पर्य है।

0

क्या आपने अल्फा चैनल को संरक्षित करने के लिए पारदर्शी रंग की कोशिश की है?

संबंधित मुद्दे