फ़ोटोशॉप / जिम्प इमेज में अल्फा चैनल को संपादित करने के लिए गैर-विनाशकारी तरीका


9

Unity3d के लिए बनावट बनाने के लिए खोज, और मैं एक साधारण चरण प्रतीत होता है। मेरा लक्ष्य हर पिक्सेल के लिए रंग की जानकारी और एक अलग अल्फा चैनल के साथ RGBA छवि बनाना है। इन दो घटकों को क्रमशः आधार रंग और प्रतिबिंब शक्ति के रूप में एकता में खिलाया जाता है। ("रिफ्लेक्टिव / बम्प्ड डिफ्यूज़" सामग्री का उपयोग करना।)

यदि मैं फ़ोटोशॉप में मास्किंग टूल का उपयोग करता हूं, तो मैं आउटपुट इमेज (पारदर्शिता) के कुछ हिस्सों को मिटा सकता हूं। हालांकि, मैं आउटपुट के समय मूल आरबीजी रंग की जानकारी रखना चाहूंगा, न कि केवल "रिक्त" क्षेत्र। इसके अलावा, यह अच्छा होगा यदि मैं इसे गैर-विनाशकारी रूप से कर सकता हूं, अर्थात। अंतिम अल्फा चैनल एक मानक परत पर निर्भर है, या पथ ऑब्जेक्ट से बनाया गया है, आदि।

मुझे जिम्प के साथ भी यही समस्या है।

इस पर किसी भी प्रकार की सहायताबहुत प्रशंसनीय होगी।

(यदि फ़ोटोशॉप / जिम्प काम के लिए उपकरण नहीं हैं, तो क्या कोई कृपया बेहतर सलाह दे सकता है?)

जवाबों:


4

फोटोशॉप समाधान

छवि के एक भाग को हटाना केवल उस परत को प्रभावित कर रहा है। आप जो करना चाहते हैं वह एक अलग चैनल बनाता है जो आपकी अल्फ़ा जानकारी संग्रहीत करता है।

  1. लेयर्स / चैनल्स / पाथ वाले टूल पैनल में चैनल टैब चुनें। यहां आपको RGB, Red, Green और Blue दिखाई देगा।
  2. पैनल के नीचे बटन का उपयोग करके एक नया चैनल बनाएं, यह आपका अल्फा चैनल है। यह एक 8-बिट greyscale चैनल है जो आपको पारदर्शिता का 256 स्तर देता है।
  3. आप इस चैनल को चालू / बंद करने के लिए छोटे "आंख" आइकन का उपयोग कर सकते हैं।
  4. चैनल में अपनी जानकारी ड्रा या कॉपी / पेस्ट करें।

नोट: बचत करते समय आपको फ़ाइल स्वरूपों के बारे में सावधान रहने की आवश्यकता है। .Tiff & .TGA जैसी चीजें रंग जानकारी से स्वतंत्र पूर्ण अल्फा चैनल को बचाती हैं। हालाँकि, फ़ोटोशॉप पीएनजी के साथ इसकी अनुमति नहीं देता है, बहुत से डेवलपर्स को झुंझलाहट होती है। यह अल्फा चैनल छवियों को ठीक से नहीं बचाएगा और फ़ाइल आकार को संपीड़ित करने के लिए पूरी तरह से पारदर्शी क्षेत्रों के लिए रंग की जानकारी को छीन लेता है।


ठीक यही मेरी समस्या थी। मैं पीएनजी के लिए आउटपुट कर रहा था और "अल्फा" चैनल की अच्छाई को नहीं देख रहा था। धन्यवाद, यह एकदम सही है। किसी को भी इसी तरह जिम्प का उपयोग करने के निर्देश हैं?
एली

1
यह निराशाजनक है क्योंकि संस्करण 5.0 या 5.5 के आसपास फ़ोटोशॉप वास्तव में पीएनजी पर पूरे चैनल को बचाएगा। एडोब ने सॉफ्टवेयर के बाद के संस्करणों के लिए उन्हें संभाला। आह ...
wkerslake

4

मुझे GIMP में ऐसा करने का सबसे अच्छा तरीका एक लेयर मास्क का उपयोग करना है (एक लेयर पर राइट क्लिक करें और मास्क बनाएं)।

फिर परत में इसके साथ दो "चित्र" जुड़े होंगे - RGBA छवि और एक ग्रेस्केल लेयर मास्क जो एक अतिरिक्त (गुणक) अल्फा चैनल के रूप में कार्य करता है। आप इन चित्रों में से किसी एक को चुनने के लिए क्लिक कर सकते हैं।

यदि आप CTRL पकड़ते हैं और लेयर मास्क पर क्लिक करते हैं, तो आप बस RGBA इमेज देखेंगे (यह मास्क को निष्क्रिय कर देता है)। यदि आप ALT दबाए रखते हैं और लेयर मास्क पर क्लिक करते हैं, तो आप बस लेयर मास्क देखेंगे।

जब आप एक सक्रिय लेयर मास्क के साथ एक छवि निर्यात करते हैं, तो निर्यात की गई छवि उन क्षेत्रों से भी रंग की जानकारी को बरकरार रखेगी जो मुखौटा पूरी तरह से पारदर्शी बनाती है।

आपके उद्देश्यों के लिए, आपको अपने अल्फा चैनल को एक अलग (RGBA) परत पर रचना करने के लिए प्रभावी लग सकता है - तब जब आप कर रहे हैं तो आप इस परत को मूल परत के लेयर मास्क में कॉपी कर सकते हैं।


यह मेरी जरूरत के करीब है। लेकिन यह केवल शीर्ष परत को प्रभावित करता है! मेरी छवि में कई परतें हैं, और मैं इसे सपाट किए बिना ऐसा करने में सक्षम होना चाहूंगा। जवाब के लिए धन्यवाद।
एली

अपनी छवि की प्रत्येक परत में एक मुखौटा परत जोड़ें।
deft_code

2

GIMP में, प्रत्येक चैनल के लिए छवि को परतों में विभाजित करने का एक तरीका होगा। "रंग-> अवयव-> विघटित" चुनें और RGBA या जो भी चैनल आप परतों में तोड़ना चाहते हैं, चुनें। फिर अपने व्यक्तिगत अल्फा और रंग चैनलों को संपादित करें जैसा कि आप फिट देखते हैं (उन्हें ग्रेसीस्केल होना चाहिए), फिर "रंग-> घटक-> लिखें" अपने वांछित चैनल लेआउट का चयन करें और प्रत्येक चैनल के लिए उपयोग करने के लिए अपनी परतों का चयन करें।

इसके अलावा, आप "चैनल" संवाद का उपयोग कर सकते हैं। यह डिफ़ॉल्ट टूलबॉक्स चीजों का एक हिस्सा होना चाहिए, लेकिन यदि आप "विंडोज-> डॉकएबल डायलॉग्स-> चैनल" का चयन नहीं कर सकते हैं। आप प्रत्येक रंग चैनल की दृश्यता को टॉगल कर सकते हैं, और चैनल नामों पर क्लिक करके और उन पर प्रकाश डालकर जिन्हें आप चुन सकते हैं व्यक्तिगत रूप से संपादित करने के लिए (ऐसा लगता है कि यह अल्फा के साथ रंग को संरक्षित करता है, हालांकि मुझे अल्फा को "छिपाने" के लिए कोई रास्ता नहीं दिखता है) सम्पूर्ण चित्र को छिपाए बिना संपादन ...)।


ऐसा लगता है कि मुझे पहले छवि को समतल करना है, फिर विघटित करना है, फिर संपादित करना है, और फिर पुन: प्रस्ताव करना है। पारितोषिक के लिए धन्यवाद! लेकिन मैं एक गैर-विनाशकारी तरीके की तलाश कर रहा हूं।
i

आह, मैंने मान लिया कि आप एक सिंगल लेयर इमेज के साथ काम कर रहे हैं इसलिए चपटे होना जरूरी नहीं होगा, लेकिन फिर भी ऐसा नहीं होगा। सौभाग्य!
रिले एडम्स

2

अपने स्वयं के कंटेंट प्रोसेसर को लिखने के लिए (जैसा कि @Andrew Russell ने सुझाव दिया है) Unity3D के लिए विशिष्ट है, इस स्क्रिप्ट को अपने Assets/Editorफ़ोल्डर में रखें किसी भी छवि को संयोजित करेंगे*-Base.* को समान नाम वाली *-Alpha.*फ़ाइल के साथ और मूल बनावट को संशोधित करेगा:

class AlphaCombinerPostprocessor extends AssetPostprocessor {
    function OnPostprocessTexture(texture : Texture2D)
    {
        if (assetPath.Contains("-Base.")) {
            var fn = assetPath.Replace("-Base.","-Alpha.");
            var alpha = AssetDatabase.LoadAssetAtPath(fn,Texture2D);
            if (alpha) {
                Debug.Log("Adding alpha from "+fn);
                var c : Color[] = texture.GetPixels();
                var a : Color[] = alpha.GetPixels();
                if (c.Length != a.Length) {
                    Debug.LogError(fn+" is different size to "+assetPath);
                    return;
                }
                for (var i=0; i<c.Length; i++)
                    c[i].a = a[i].a;
                texture.SetPixels(c);
                texture.Apply(true);
            }
        }
    }
}

अपनी स्वयं की संपत्ति फ़ाइल नामकरण परंपराओं के अनुकूल।


0

एक विकल्प यह है कि आप जो ऑपरेशन चाहते हैं, उसे करने के लिए अपने स्वयं के सामग्री प्रोसेसर को लिखें। इस तरह से आप अपनी "परावर्तकता" परत (या यहाँ तक कि कई परावर्तकता परतें) को एक विशेष नाम दे सकते हैं, और उस सामग्री प्रोसेसर को आपके लिए अल्फा चैनल में डाल दिया है। (या वास्तव में किसी भी तरह की प्रक्रिया को लागू करें जो आपको पसंद है।)

यदि आप XNA और GIMP का उपयोग कर रहे थे (यह वही है जो मैं उपयोग करता हूं और इससे परिचित हूं), तो आपके लिए इस XCF आयातक को जोड़ना बहुत आसान होगा को अपनी सामग्री पाइपलाइन में और विशेष रूप से नामित परतों को संसाधित करने के लिए आवश्यक संशोधन ।

जैसा कि आप एकता का उपयोग कर रहे हैं, एक्सएनए का नहीं, मैं इस बात से परिचित नहीं हूं कि आपके पास कौन-सी सामग्री पाइपलाइन के विकल्प उपलब्ध हैं। लेकिन शायद आप लिंक किए गए कोड को अनुकूलित कर सकते हैं ताकि यह आपकी सामग्री प्रक्रिया के भीतर काम करे।

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