अल्फा चैनल को संरक्षित करते हुए बीएमपी को पीएनजी में बदलें


3

मेरे पास बीएमपी प्रारूप में एक छवि संग्रहीत है और इसे इमेजमैगिक का उपयोग करके पीएनजी में परिवर्तित करना चाहते हैं।

मैंने पिक्सेल को हेक्स व्यूअर में देखा और देखा कि वे 32 बीपीपी में संग्रहीत हैं, इसलिए एक अल्फा चैनल है। पारदर्शी पिक्सेल का RGBA मान (255, 255, 255, 0) है, और पेंट.नेट उन्हें सफ़ेद पिक्सेल के रूप में संभवतः इसलिए उठा रहा है क्योंकि इससे BMP के पारदर्शी पिक्सेल की उम्मीद नहीं है?

वैसे भी, मेरे द्वारा उपयोग की जाने वाली कमांड है

convert -alpha on -quality 95 in.bmp out.png

हालाँकि, जब मैंने पेंट.नेट में परिणामी छवि को खोला (जो आमतौर पर पारदर्शी पिक्सेल की ठीक से व्याख्या करता है), तो वे पारदर्शी पिक्सेल अभी भी सफेद थे।

क्या मैं छवियों को गलत तरीके से परिवर्तित कर रहा हूं? मैं छवि संपादक में पारदर्शी दिखने के लिए 0 के अल्फा मान के साथ पिक्सल को पसंद करूंगा जिसका मैं आमतौर पर उपयोग करता हूं।

जवाबों:


5

आपने ImageMagick में एक बग की खोज की। यह ImageMagick 6.8.7-9 में तय किया जाएगा। मैं ImageMagick के लिए डेवलपर्स में से एक हूं और मैंने सिर्फ हमारे एसवीएन रिपॉजिटरी ( http://trac.imagemagick.org/changeset/13867 ) को ठीक करने के लिए प्रतिबद्ध किया है ।


तुम यह कैसे जानते हो? कोई सहायक जानकारी?
डेव एम

मैं संक्षिप्त उत्तर के लिए क्षमा चाहता हूँ। मैं ImageMagick के लिए डेवलपर्स में से एक हूं और मैंने सिर्फ हमारे एसवीएन रिपॉजिटरी के लिए फिक्स किया है।
dlemstra

@dlemstra - उस जानकारी को आपके उत्तर में बेहतर ढंग से संपादित किया जाएगा।
ChrisF

धन्यवाद, मैं इसे जारी करने की कोशिश करूँगा और इसे इस प्रश्न पर वापस लाऊंगा।
वह छाता गाइ

जिज्ञासा से बाहर @Keikoku वहाँ SVN रेपो के लिए एक कड़ी है जिसे हम देख सकते हैं? इस जानकारी को प्रदान करने के लिए समय निकालने के लिए, और परियोजना के साथ अपनी भागीदारी का सटीक रूप से खुलासा करने के लिए धन्यवाद।
nhinkle

1

यह एक अल्फा चैनल नहीं हो सकता है। यदि यह एक बिटमैप v4 प्रारूप फ़ाइल है, तो इसमें एक अल्फा चैनल हो सकता है। पहले के संस्करणों के लिए, पिक्सल्स को 32 बिट्स के रूप में संग्रहीत करना अभी भी संभव है, लेकिन शीर्ष बिट आरक्षित है और हमेशा शून्य है

यहाँ के साथ एक 32 बिट bmp का एक उदाहरण है अल्फा यहाँ है के साथ एक 32 बिट bmp का एक उदाहरण कोई अल्फा

टिप्पणियों में उदाहरण छवि में GIMP के अनुसार कोई अल्फा चैनल नहीं है और identify -verboseआप जो सबसे अच्छा कर सकते हैं वह सफेद पृष्ठभूमि को पारदर्शी बना सकता है

convert sample.bmp -transparent white alpha.png

मेरा मानना ​​है कि यह एक अल्फा चैनल के रूप में उपयोग किया जाता है क्योंकि प्रत्येक पिक्सेल में उस बाइट के लिए शून्य नहीं होता है, और अगर मैं इसे मैन्युअल रूप से पार्स करता हूं और इसे अल्फा चैनल के रूप में मानता हूं, तो परिणामस्वरूप छवि में सही पारदर्शी पिक्सेल हैं। उस स्थिति में, शायद इमेजमाजिक इसे एक अल्फा चैनल के रूप में नहीं मान रहा है, इसलिए मैं इमेजमैजिक को इस तरह से व्यवहार करने के लिए कहना चाहूंगा?
वह छाता लड़का

क्या आप identify -verboseफ़ाइल पर चल सकते हैं और चैनल की जानकारी देख सकते हैं? या स्वयं छवि के लिए लिंक पोस्ट करें
parkydr

1
मैंने अल्फा (जीआईएमपी के साथ) के साथ एक बीएमपी बनाया और अल्फा.बम्प अल्फा.पिंग में परिवर्तित किया और यह ठीक काम किया। पींग पारदर्शी थी।
20


जीआईएमपी और पहचान के अनुसार, कोई अल्फा चैनल नहीं है
16
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.