अल्फा चॅनेल म्हणजे काय? अल्फा चॅनेल: सेव्हिंग, प्रोसेसिंग, लोडिंग सिलेक्शन, लॉजिकल ऑपरेशन्स. स्तर काय आहेत

व्हायबर डाउनलोड करा 09.03.2019
व्हायबर डाउनलोड करा

अल्फा चॅनेल व्हिडिओच्या काही भागांच्या पारदर्शकतेबद्दल माहिती आहे. दुसऱ्या शब्दांत, हा पारदर्शक पार्श्वभूमी असलेला व्हिडिओ आहे.

अल्फा चॅनेल आम्हाला आवश्यक असलेल्या वस्तू दृश्यमान ठेवण्याची आणि आम्हाला आवश्यक नसलेली जागा पारदर्शक बनवण्याची परवानगी देते. मूलत:, अल्फा चॅनेल मास्क ज्या प्रकारे कार्य करते त्याच प्रकारे कार्य करते. म्हणून, त्याला कधीकधी मुखवटा चॅनेल म्हणतात.

मास्कसह काम करण्यापेक्षा, अल्फासह कार्य करणे खूप सोपे आहे. व्हिडिओमध्ये अल्फा चॅनेल असल्यास, इच्छित अल्फा मिळविण्यासाठी आपल्याला फक्त ते चालू करणे आवश्यक आहे.

सोनी वेगासमध्ये अल्फा चॅनेल कसे वापरावे

उदाहरणार्थ, आम्ही "" (चित्र 4) धड्यात बनवलेला काळा आणि पांढरा "दोन हृदय" मुखवटा वापरून व्हिडिओ रचना घेऊ. या रचनेतून क्लिप 1 आणि क्लिप 2 काढून टाकू, कारण फुटेज तयार झाल्यावर, आम्ही ते कोणत्याही व्हिडिओ किंवा फोटोसह बदलू शकतो.

Sony Vegas मध्ये अल्फा चॅनेल असलेला व्हिडिओ दोनपैकी एका formats.mov किंवा.avi मध्ये मिळणे शक्य आहे.

फाइल मेनूमध्ये, रेंडर as... कमांड निवडा (चित्र 5)

दिसत असलेल्या विंडोमध्ये, "फाइलचे नाव" फील्डमध्ये, फाइलला एक नाव द्या. "फाइल प्रकार" फील्डमध्ये, द्रुत वेळ 7 (*.mov) निवडा. टेम्प्लेट फील्डमध्ये, डिफॉल्ट टेम्प्लेट (अनकम्प्रेस केलेले) निवडा आणि कस्टम…(कस्टम) बटणावर क्लिक करा (चित्र 6).

दिसणाऱ्या विंडोमध्ये (Fig. 7), फ्रेम आकार फील्डमध्ये, आउटपुट म्हणून आम्हाला प्राप्त करण्याचा व्हिडिओ टेम्पलेट निवडा. फ्रेम दर फील्डमध्ये, आपल्याला आवश्यक असलेले फ्रेम दर टेम्पलेट निवडा. सर्वात महत्वाची गोष्ट म्हणजे कॉम्प्रेस्ड डेप्थ फील्डमध्ये 32 bpp रंग (32 दशलक्ष रंग) निवडणे. अन्यथाअल्फा चॅनेल जतन केले जाणार नाही.

जेणेकरून अल्फा सह फुटेज समाविष्ट नाही ऑडिओ ट्रॅकतुम्ही ऑडिओ टॅबवर जाऊ शकता आणि ऑडिओ समाविष्ट करा बॉक्स अनचेक करू शकता (ऑडिओ चालू करा) (चित्र 8). यामुळे तुमच्या फाईलचा आकार थोडा कमी होईल.

सर्व सेटिंग्ज केल्यानंतर, तुम्हाला ओके बटणावर क्लिक करणे आवश्यक आहे आणि पुढील विंडोमध्ये, सेव्ह बटणावर क्लिक करा. इतकेच, आता परिणामी व्हिडिओमध्ये अल्फा चॅनेल असेल.

तुम्हाला avi मध्ये अल्फा सह व्हिडिओ आउटपुट करायचा असल्यास, तुम्हाला पहिल्या उदाहरणाप्रमाणेच सर्वकाही करणे आवश्यक आहे, फक्त Quick Time 7 (*.mov) ऐवजी “फाइल प्रकार” फील्डमध्ये. तुम्हाला व्हिडिओ निवडण्याची आवश्यकता आहे विंडोजसाठी(*.avi).

त्यानंतर, सानुकूल... बटणावर क्लिक करून, कॉम्प्रेस्ड डेप्थ फील्डमध्ये, अनकम्प्रेस्ड (कंप्रेशनशिवाय) निवडा आणि रेंडर अल्फा चॅनेल (फक्त अनकम्प्रेस केलेले व्हिडिओ फॉरमॅट) फील्ड तपासा. (अंजीर 9).

अल्फासह फुटेजचा मुख्य तोटा म्हणजे त्याचा आकार. या प्रकरणात कॉम्प्रेशन वापरले जात नसल्यामुळे, फाइलचे आकार बरेच मोठे आहेत. कोणत्याही परिस्थितीत, तुमच्यासाठी अधिक महत्त्वाचे काय आहे, अल्फा चॅनेल वापरून वाचवलेला वेळ किंवा तुमच्या हार्ड ड्राइव्हवरील जागा काय आहे हे तुम्ही ठरवता.

रास्टर प्रतिमा संपूर्ण पंक्ती आणि स्तंभांची बनलेली असते. BitmapSource-व्युत्पन्न वर्गाच्या कोणत्याही उदाहरणासाठी, हे परिमाण गुणधर्मांमधून मिळू शकतात पिक्सेल उंचीआणि पिक्सेल रुंदी.

संकल्पनात्मक स्तरावर, पिक्सेल बिट्स संग्रहित केले जातात द्विमितीय ॲरे, ज्याचे परिमाण PixelHeight आणि PixelWidth सारखे आहेत. खरं तर, ॲरेमध्ये फक्त एक परिमाण आहे, परंतु वैयक्तिक पिक्सेलच्या प्रतिनिधित्वासह मुख्य समस्या उद्भवतात. हे प्रतिनिधित्व, ज्याला कधीकधी बिटमॅप प्रतिमेचे "रंग स्वरूप" म्हटले जाते, प्रति पिक्सेल एक बिट (फक्त काळ्या आणि पांढरी फुले) प्रति पिक्सेल एक बाइट पर्यंत (256-रंग पॅलेटसह ग्रेस्केल किंवा रास्टर असलेल्या प्रतिमांसाठी), 3 किंवा 4 बाइट्स प्रति पिक्सेल (पारदर्शकतेसह किंवा त्याशिवाय पूर्ण-रंगीत प्रतिमांसाठी), आणि त्याहूनही मोठ्या रंगाच्या रिझोल्यूशनसाठी.

तथापि, WriteableBitmap सह कार्य करण्यासाठी सिंगल कलर फॉरमॅट सेट केले होते. कोणत्याही WriteableBitmap ऑब्जेक्टमध्ये, प्रत्येक पिक्सेलमध्ये चार बाइट्स असतात. तर बिटमॅप पिक्सेल ॲरेमध्ये एकूण बाइट्सची संख्या आहे:

PixelHeight * PixelWidth * 4

प्रतिमा वरच्या ओळीपासून सुरू होते आणि डावीकडून उजवीकडे जाते. कोणतीही रेषा संरेखन नाही. प्रत्येक पिक्सेलसाठी, बाइट एका विशिष्ट क्रमाने दिसतात:

निळा, हिरवा, लाल, अल्फा

रंग मूल्यांप्रमाणे बाइट मूल्ये 0 ते 255 पर्यंत असतात. लिहिण्यायोग्यबिटमॅप रंग मूल्ये sRGB योजनेचे ("RGB मानक") अनुसरण करतात असे गृहीत धरले जाते आणि म्हणून Windows रनटाइम रंग मूल्यांशी सुसंगत आहेत (कलर्स. पारदर्शक मूल्य वगळता - खाली पहा).

WriteableBitmap पिक्सेल मध्ये संग्रहित आहेत पूर्वगुणित अल्फा. याचा अर्थ मी तुम्हाला लवकरच सांगेन.

"निळा-हिरवा-लाल-अल्फा" हा क्रम सामान्यतः कलर बाइट्स (आणि Color.FromArgb पद्धतीत त्यांचा क्रम) नियुक्त करण्यासाठी वापरल्या जाणाऱ्या विरूद्ध आहे, परंतु जेव्हा तुम्ही विचार करता की लेखन करण्यायोग्यबिटमॅप पिक्सेल आहे. प्रत्यक्षात 32 -एक स्वाक्षरी न केलेला बिट पूर्णांक ज्यामध्ये अल्फा चॅनेल उच्च बाइटमध्ये संग्रहित केला जातो आणि निळा घटक कमी बाइटमध्ये संग्रहित केला जातो. आधारित ऑपरेटिंग सिस्टमवर इंटेल मायक्रोप्रोसेसरहा पूर्णांक लिटल-एंडियन बाइट क्रमाने संग्रहित केला जातो.

चला बिटमॅप तयार करूया. हे करण्यासाठी, आम्ही एक WriteableBitmap ऑब्जेक्ट तयार करू आणि तो पिक्सेलने भरू. गणना सुलभ करण्यासाठी, WriteableBitmap मध्ये 256 पंक्ती आणि 256 स्तंभ असतील. वरचा डावा कोपरा काळा असेल, वरचा उजवा कोपरा निळा असेल, खालचा डावीकडे लाल असेल आणि खालचा उजवा कोपरा जांभळा असेल (लाल आणि निळ्या रंगाचे संयोजन). कलरिंग हा ग्रेडियंटचा एक प्रकार आहे, परंतु तो विंडोज रनटाइममध्ये उपलब्ध असलेल्या ग्रेडियंटपेक्षा वेगळा आहे.

XAML फाइल प्रतिमा घटक परिभाषित करते ज्याला प्रतिमास्रोत-व्युत्पन्न वर्गाचे उदाहरण दिले जाते:

XAML मध्ये WriteableBitmap इन्स्टंट करणे शक्य नाही कारण या वर्गात पॅरामीटरलेस कन्स्ट्रक्टर नाही. पार्श्वभूमी कोड फाइल लोडेड इव्हेंट हँडलरमध्ये WriteableBitmap तयार करते आणि तयार करते. खाली आवश्यक निर्देशांसह संपूर्ण फाइल आहे. WriteableBitmap वर्ग स्वतः Windows.UI.Xaml.Media.इमेजिंग नेमस्पेस मध्ये परिभाषित केला आहे:

System.IO वापरणे; Windows.UI.Xaml वापरून; Windows.UI.Xaml.Media.Imaging वापरून; Windows.UI.Xaml.Controls वापरून; System.Runtime.InteropServices.WindowsRuntime वापरून; नेमस्पेस WinRTTestApp ( सार्वजनिक सीलबंद आंशिक वर्ग मुख्यपृष्ठ: पृष्ठ ( सार्वजनिक मुख्यपृष्ठ() ( this.InitializeComponent(); लोड केलेले += MainPage_Loaded; ) खाजगी async void MainPage_Loaded(ऑब्जेक्ट प्रेषक, RoutedEventArgs e) ( WriteableBitteableBitma56) ; बाइट पिक्सेल = नवीन बाइट (int y = 0; y< bitmap.PixelHeight; y++) for (int x = 0; x < bitmap.PixelWidth; x++) { int index = 4 * (y * bitmap.PixelWidth + x); pixels = (byte)x; // Blue pixels = 0; // Green pixels = (byte)y; // Red pixels = 255; // Alpha } using (Stream pixelStream = bitmap.PixelBuffer.AsStream()) { await pixelStream.WriteAsync(pixels, 0, pixels.Length); } bitmap.Invalidate(); image.Source = bitmap; } } }

WriteableBitmap कन्स्ट्रक्टरने प्रतिमेची रुंदी आणि उंची पिक्सेलमध्ये पास केली पाहिजे. या आकारांवर आधारित, प्रोग्राम बाइट ॲरेसाठी मेमरी वाटप करतो:

बाइट पिक्सेल = नवीन बाइट;

WriteableBitmap साठी ॲरे आकार नेहमी या सूत्राचा वापर करून मोजला जातो.

रो आणि कॉलम लूप इमेजमधील सर्व पिक्सेलमधून पुनरावृत्ती करतात. ॲरेमधील विशिष्ट पिक्सेलमध्ये प्रवेश करण्यासाठी अनुक्रमणिका खालीलप्रमाणे मोजली जाते:

इंट इंडेक्स = 4 * (y * bitmap.PixelWidth + x);

या विशिष्ट उदाहरणामध्ये, दोन लूप ॲरेमध्ये संग्रहित केलेल्या क्रमाने पिक्सेलमध्ये प्रवेश करतात, जेणेकरून प्रत्येक पिक्सेलसाठी अनुक्रमणिका पुन्हा मोजावी लागणार नाही. हे शून्यावर सुरू केले जाऊ शकते आणि नंतर खालीलप्रमाणे वाढविले जाऊ शकते:

इंट इंडेक्स = 0; साठी (int y = 0; y< bitmap.PixelHeight; y++) for (int x = 0; x < bitmap.PixelWidth; x++) { int index = 4 * (y * bitmap.PixelWidth + x); pixels = (byte)x; // Blue pixels = 0; // Green pixels = (byte)y; // Red pixels = 255; // Alpha }

हे समाधान माझ्यापेक्षा जवळजवळ नक्कीच वेगवान असेल, परंतु एकूणच ते कमी लवचिक आहे.

तुम्ही व्हेरिएबलच्या वर्तमान मूल्यावर आधारित x आणि y च्या गणनेसह निर्देशांकानुसार लूप देखील परिभाषित करू शकता. काय महत्वाचे आहे ते विशिष्ट अंमलबजावणी नाही, परंतु त्याऐवजी सर्व पिक्सेल शोधाच्या परिणामी प्रक्रिया केल्या जातात (नेहमीच नाही, अर्थातच, परंतु बहुतेक प्रकरणांमध्ये).

बाइट ॲरे भरल्यानंतर, पिक्सेल लेखनयोग्य बिटमॅप ऑब्जेक्टवर हस्तांतरित करणे आवश्यक आहे. ही प्रक्रिया पहिल्या दृष्टीक्षेपात अगदी विचित्र दिसते. WriteableBitmap द्वारे परिभाषित केलेली PixelBuffer गुणधर्म प्रकारची आहे आयबफर, जे फक्त दोन गुणधर्म परिभाषित करते: क्षमता आणि लांबी. आधी सांगितल्याप्रमाणे, IBuffer ऑब्जेक्ट विशेषत: ऑपरेटिंग सिस्टम कंट्रोल अंतर्गत मेमरीचे क्षेत्र संदर्भ मोजणी यंत्रणेसह दर्शवते; जेव्हा मेमरी अनावश्यक होते, तेव्हा वस्तू आपोआप नष्ट होते. बाइट्स अशा बफरमध्ये हस्तांतरित करणे आवश्यक आहे.

सुदैवाने, आहे Asstream विस्तार पद्धतजे IBuffer ऑब्जेक्टला .NET स्ट्रीम ऑब्जेक्ट म्हणून अर्थ लावण्याची परवानगी देते:

प्रवाह pixelStream = bitmap.PixelBuffer.AsStream()

ही एक्स्टेंशन पद्धत वापरण्यासाठी, तुम्ही System.Runtime.InteropServices.WindowsRuntime नेमस्पेससाठी तुमच्या प्रोग्राममध्ये वापरण्याचे निर्देश समाविष्ट करणे आवश्यक आहे. या निर्देशाशिवाय, ही पद्धत अस्तित्वात आहे हे InlelliSense ला कळणार नाही.

पुढे, स्ट्रीम क्लासद्वारे परिभाषित केलेली नियमित लेखन पद्धत स्ट्रीम ऑब्जेक्टवर बाइट ॲरे लिहिण्यासाठी वापरली जाते; तुम्ही WriteAsync पद्धत देखील वापरू शकता, जसे मी केले. प्रतिमा लहान असल्याने आणि कॉल API द्वारे फक्त बाइट ॲरे पास करत असल्याने, UI थ्रेडवर ऑपरेशन करण्यासाठी लेखन पद्धत पुरेशी जलद असेल. पुढे, स्ट्रीम ऑब्जेक्ट "मॅन्युअली" किंवा आपोआप नष्ट केला जातो किंवा स्ट्रीम लॉजिक वापरण्याच्या निर्देशामध्ये ठेवले जाते, जसे मी केले:

वापरणे (प्रवाह pixelStream = bitmap.PixelBuffer.AsStream()) ( pixelStream.WriteAsync (पिक्सेल, 0, पिक्सेल. लांबी) प्रतीक्षा करा;)

प्रत्येक वेळी पिक्सेल बदलताना WriteableBitmap ला प्रतिमेवर Invalidate म्हटले जावे या वस्तुस्थितीची सवय करा:

Bitmap.Invalidate();

या कॉलसाठी बिटमॅप पुन्हा काढणे आवश्यक आहे. या विशिष्ट संदर्भात त्याची उपस्थिती आवश्यक नाही, परंतु इतर बाबतीत ते महत्वाचे आहे. ते तयार केलेली प्रतिमा प्रदर्शित करण्यासाठी राहते. प्रोग्राम XAML फाइलमधील इमेज एलिमेंटच्या सोर्स प्रॉपर्टीवर सहजपणे सेट करतो:

प्रतिमा.स्रोत = बिटमॅप;

परिणाम:

बिटमॅपच्या पुढील हाताळणीसाठी तुम्ही स्ट्रीम ऑब्जेक्ट आणि पिक्सेलचा ॲरे स्टोअर करत असल्यास (उदाहरणार्थ, ते कालांतराने बदलत असल्यास), तुम्ही WriteAsync ला कॉल करण्यापूर्वी एक सीक कॉल घातला पाहिजे जेणेकरुन सध्याची स्थिती सुरवातीला परत येईल:

PixelStream.Seek(0, SeekOrigin.Begin);

लक्षात घ्या की बाइट ॲरेचा फक्त काही भाग बिटमॅप ऑब्जेक्टवर लिहिला जाऊ शकतो. समजा तुम्ही रेंजमधील पिक्सेल (x1, y1) ते (x2, y2) बदलले आहेत (समाविष्ट नाही शेवटचा मुद्दा). प्रथम या दोन निर्देशांकांशी संबंधित बाइट्सचे निर्देशांक निश्चित करा:

Int index1 = 4 * (y1 * bitmap.PixelWidth + x1); int index2 = 4 * (y2 * bitmap.PixelWidth + x2);

नंतर निर्दिष्ट करा की आपण इंडेक्स 1 वरून इंडेक्स 2 वर पिक्सेल अद्यतनित करणार आहात:

PixelStream.Seek(इंडेक्स, SeekOrigin.Begin); pixelStream.Write(pixels, index1, index2 - index1); bitmap.Invalidate();

चला दुसर्या प्रकारचे सानुकूल ग्रेडियंट लागू करण्याचा प्रयत्न करूया. खालील प्रोग्राम, CircularGradient, प्रतिमेच्या केंद्राशी संबंधित विशिष्ट पिक्सेलच्या कोनावर आधारित ग्रेडियंटची गणना करतो (गणना तुमच्या अपेक्षेपेक्षा सोपी आहे).

XAML फाइल स्ट्रोक गुणधर्मासाठी जाड बाह्यरेखा आणि इमेजब्रश ऑब्जेक्टसह एलिप्स परिभाषित करते. ॲनिमेशन लंबवर्तुळ ऑब्जेक्टला मध्यभागी फिरवते:

बॅकग्राउंड कोड फाईलमधील लोडेड हँडलर जवळपास सारखाच आहे मागील कार्यक्रम. दोन लूप प्रतिमेच्या पंक्ती आणि स्तंभांवर पुनरावृत्ती करतात, प्रत्येक पिक्सेल डावीकडील स्थिती (x,y) वर स्थित आहे वरचा कोपरा. मध्यभागी असलेल्या पिक्सेलमध्ये निर्देशांक असतात (बिटमॅप. पिक्सेलविड्थ/2, बिटमॅप. पिक्सेलहाइट/2). विशिष्ट पिक्सेलच्या निर्देशांकांमधून केंद्र निर्देशांक वजा करून आणि प्रतिमेच्या रुंदी आणि उंचीने विभाजित करून, पिक्सेल निर्देशांक -1/2 ते 1/2 श्रेणीतील मूल्यांमध्ये रूपांतरित केले जातात, जे नंतर पास केले जाऊ शकतात इच्छित कोन मिळविण्यासाठी Math.Atan2 पद्धत:

System.IO वापरणे; Windows.UI.Xaml वापरून; Windows.UI.Xaml.Media.Imaging वापरून; Windows.UI.Xaml.Controls वापरून; System.Runtime.InteropServices.WindowsRuntime वापरून; सिस्टम वापरणे; नेमस्पेस WinRTTestApp ( सार्वजनिक सीलबंद आंशिक वर्ग मुख्यपृष्ठ: पृष्ठ ( सार्वजनिक मुख्यपृष्ठ() ( this.InitializeComponent(); लोड केलेले += MainPage_Loaded; ) खाजगी async void MainPage_Loaded(ऑब्जेक्ट प्रेषक, RoutedEventArgs e) ( WriteableBitteableBitma56) ;बाइट पिक्सेल = नवीन बाइट; पिक्सेलविड्थ / 2; बिटमॅप< bitmap.PixelHeight; y++) for (int x = 0; x < bitmap.PixelWidth; x++) { double angle = Math.Atan2(((double)y - centerY) / bitmap.PixelHeight, ((double)x - centerX) / bitmap.PixelWidth); double fraction = angle / (2 * Math.PI); pixels = (byte)(fraction * 255); // Blue pixels = 0; // Green pixels = (byte)(255 * (1 - fraction)); // Red pixels = 255; // Alpha } using (Stream pixelStream = bitmap.PixelBuffer.AsStream()) { await pixelStream.WriteAsync(pixels, 0, pixels.Length); } bitmap.Invalidate(); imageBrush.ImageSource = bitmap; } } }

ग्रेडियंटची गणना करण्यासाठी हा कोन 0 ते 1 पर्यंतच्या अंशात्मक मूल्यामध्ये रूपांतरित केला जातो. एलीप्स ऑब्जेक्टच्या फिल प्रॉपर्टीवर सेट केलेल्या इमेजब्रश ऑब्जेक्टद्वारे वापरल्यास पूर्ण बिटमॅप कसा दिसतो ते येथे आहे:

आधी दर्शविल्याप्रमाणे, विंडोज रनटाइममधील ब्रशेस सामान्यत: ज्या घटकांवर लागू केले जातात त्या घटकावर पसरतात. इमेजब्रशच्या बाबतीतही असेच घडते, त्यामुळे एका अर्थाने बेस इमेजचा आकार तितका महत्त्वाचा नाही... काही प्रमाणात, अर्थातच - खूप लहान प्रतिमापुरेसा तपशील नसतो आणि खूप मोठे पिक्सेल वाया जाते.

जेव्हा पृष्ठभागावर रास्टर प्रतिमा प्रदर्शित केली जाते (म्हणजे, मॉनिटर स्क्रीनवर), त्याचे पिक्सेल नेहमी सहजपणे पृष्ठभागावर हस्तांतरित केले जात नाहीत. बिटमॅप पारदर्शकतेचे समर्थन करत असल्यास, प्रत्येक पिक्सेल त्या पिक्सेलच्या अल्फा चॅनेलच्या आधारावर संबंधित बिंदूवर विद्यमान पृष्ठभागाच्या रंगासह एकत्र करणे आवश्यक आहे. अल्फा चॅनेल 255 (पूर्ण अपारदर्शकता) असल्यास, प्रतिमा पिक्सेल फक्त पृष्ठभागावर कॉपी केली जाते. अल्फा चॅनेल 0 (पारदर्शकता) असल्यास, पिक्सेल अजिबात कॉपी केला जात नाही. अल्फा चॅनेल 128 असल्यास, परिणाम म्हणजे प्रतिमा पिक्सेल रंगाची सरासरी आणि आउटपुटपूर्वी पृष्ठभागाचा रंग.

खालील सूत्रे एका पिक्सेलसाठी संबंधित गणना दर्शवतात. प्रत्यक्षात, A, R, G आणि B ची मूल्ये 0 ते 255 पर्यंत आहेत, परंतु खालील सरलीकृत सूत्रे असे गृहीत धरतात की ते 0 ते 1 पर्यंतच्या श्रेणीत सामान्य केले गेले आहेत. सबस्क्रिप्ट मॅपिंगचा "परिणाम" दर्शवितात विद्यमान "पृष्ठभाग" वर अंशतः पारदर्शक "प्रतिमा" पिक्सेल:

प्रत्येक ओळीवरील दुसऱ्या गुणाकाराकडे लक्ष द्या. यात केवळ इमेज पिक्सेलचा समावेश आहे, परंतु पृष्ठभागाचा समावेश नाही. हे खालीलप्रमाणे आहे की पृष्ठभागावर रास्टर प्रतिमा प्रदर्शित करण्याची संपूर्ण प्रक्रिया प्रथम पिक्सेलच्या R, G आणि B मूल्यांना A मूल्याने गुणाकार करून वेगवान केली जाऊ शकते:

अल्फा प्रीमल्टिपली नसलेल्या बिटमॅपमध्ये (192,40,60,255) एआरजीबी मूल्य असलेला पिक्सेल असतो असे समजू. 192 चा अल्फा चॅनेल 75 टक्के अपारदर्शकता दर्शवितो (192 भागिले 255). अल्फा प्रीमल्टीप्लीसह समतुल्य पिक्सेल आहे (192, 30, 45, 192): लाल, हिरवे आणि निळे घटक 75% ने गुणाकार केले आहेत.

WriteableBitmap प्रदर्शित करताना, ऑपरेटिंग सिस्टम असे गृहीत धरते की पिक्सेल अल्फा-प्रीमल्टीप्ली फॉरमॅटमध्ये आहे. अनियंत्रित पिक्सेलसाठी, R, G आणि B पैकी कोणतेही मूल्य A मूल्यापेक्षा जास्त असू शकत नाही, जर ही अट पूर्ण झाली नाही, तर काहीही भयंकर होणार नाही, परंतु तुम्हाला हवे असलेले रंग आणि पारदर्शकता मिळणार नाही.

चला काही उदाहरणे पाहू. "विनआरटी मधील स्केलिंग एलिमेंट्स" या लेखात प्रतिमा कशी फ्लिप करायची आणि ती "विरघळली" हे दाखवले आहे जेणेकरून ते प्रतिबिंबासारखे दिसते. परंतु विंडोज रनटाइम पारदर्शकता मास्कला समर्थन देत नसल्यामुळे, पारदर्शकता प्रभाव प्राप्त करण्यासाठी मला प्रतिमा अर्ध-पारदर्शक आयताने कव्हर करावी लागली.

ReflectedAlphaImage प्रकल्पाने वेगळे उपाय वापरले. XAML फाईलमध्ये दोन प्रतिमा घटक असतात जे दोन-पंक्ती ग्रिड पॅनेलचा एक सेल व्यापतात. दुसऱ्या इमेज घटकासाठी, RenderTransformOrigin आणि ScaleTransform गुणधर्म खालच्या बाजूच्या सापेक्ष "प्रतिबिंबित" असल्याचे सुनिश्चित करण्यासाठी सेट केले आहेत, परंतु प्रतिमा निर्दिष्ट केलेली नाही:

.jpg" HorizontalAlignment="Center" />

प्रथम प्रतिमा घटकाद्वारे संदर्भित बिटमॅप पार्श्वभूमी कोड फाइलमध्ये स्वतंत्रपणे लोड करणे आवश्यक आहे. (तुम्ही कदाचित विचार करत असाल: तुम्हाला पहिल्या इमेज ऑब्जेक्टच्या स्त्रोत गुणधर्मामध्ये निर्दिष्ट केलेल्या ऑब्जेक्टवरून WriteableBitmap ऑब्जेक्ट मिळू शकत नाही? परंतु तो ऑब्जेक्ट BitmapSource प्रकाराचा आहे आणि आपण BitmapSource वरून WriteableBitmap तयार करू शकत नाही.) जर आपण लोड केलेली प्रतिमा बदलू इच्छित नाही, कन्स्ट्रक्टर कदाचित यासारखे दिसू शकेल:

लोड केले += async (प्रेषक, e) =>.jpg"); RandomAccessStreamReference refStream = RandomAccessStreamReference.CreateFromUri(uri); IRandomAccessStreamWithContentType fileStream = await refStream.OpenReadableBitmabiteBit; (1, 1) bitmap.SetSource (फाइलस्ट्रीम); प्रतिबिंबित प्रतिमा. स्रोत = बिटमॅप);

हा कोड लोडेड हँडलरमध्ये ठेवला पाहिजे कारण तो एसिंक्रोनस एक्झिक्यूशन वापरतो. जेव्हा SetSource पद्धतीने डेटा प्राप्त होतो तेव्हा प्रभावीपणे "अज्ञात" आकारासह WriteableBitmap तयार करण्याची शक्यता लक्षात घ्या. JPEG प्रवाह वाचून, WriteableBitmap ऑब्जेक्ट पिक्सेलमधील वास्तविक परिमाणे निर्धारित करू शकतो.

तथापि, जेव्हा FileStream ऑब्जेक्ट WriteableBitmap ऑब्जेक्टच्या SetSource पद्धतीवर पास केला जातो आणि जेव्हा तो प्रतिमा घटकाच्या स्त्रोत गुणधर्मावर सेट केला जातो तेव्हा बिटमॅप अद्याप लोड केलेला नाही. WriteableBitmap कोडमध्ये लोडिंग असिंक्रोनसपणे केले जाते. याचा अर्थ असा की तुम्ही अद्याप पिक्सेल बदलणे सुरू करू शकत नाही कारण डेटा अद्याप प्राप्त झाला नाही! अर्थात, WriteableBitmap वर्गाने सेटसोर्समध्ये बिटमॅप लोड करणे पूर्ण झाल्यावर फायर झालेल्या इव्हेंटची व्याख्या केल्यास ते सोयीचे होईल, परंतु अशी कोणतीही घटना नाही. इमेज एलिमेंटचा इमेज ओपन केलेला इव्हेंट देखील ही माहिती WriteableBitmap ला देऊ शकत नाही.

तर, आपल्याला फक्त लोड करावे लागेल रास्टर फाइलस्वतः, आणि नंतर त्यात बदल करा. मी दाखवत असलेला कोड आधी नमूद केलेल्या मदतनीस वर्गांचा वापर करून थोडासा सोपा केला जाऊ शकतो, परंतु प्रथम वर्गांशिवाय ते कसे केले जाते ते पाहू. प्रक्रिया असे दिसते:

System.IO वापरणे; Windows.UI.Xaml वापरून; Windows.UI.Xaml.Media.Imaging वापरून; Windows.UI.Xaml.Controls वापरून; System.Runtime.InteropServices.WindowsRuntime वापरून; सिस्टम वापरणे; Windows.Storage.Streams वापरून; namespace WinRTTestApp ( सार्वजनिक सीलबंद आंशिक वर्ग मुख्यपृष्ठ: पृष्ठ ( सार्वजनिक मुख्यपृष्ठ() ( this.InitializeComponent(); Loaded += MainPage_Loaded; ) खाजगी async void MainPage_Loaded(ऑब्जेक्ट प्रेषक, RoutedEventArgs e).jpg"; RandomStrefence =Streferences @FromUri (uri); // Windows.Storage.Streams.Buffer buffer = null; // वापरून संपूर्ण फाइल वाचा (IRandomAccessStreamWithContentType fileStream = प्रतीक्षा करा refStream.OpenReadAsync()) ( बफर = नवीन. Streams.Buffer ((uint)fileStream.Size); प्रतीक्षा करा fileStream.ReadAsync(buffer, (uint)fileStream.Size, InputStreamOptions.None // WriteableBitmap नवीन आकाराचे WriteableBitmap bitmap =1) ); (मेमरीस्ट्रीम); ) // बिटमॅप वरून पिक्सेल मिळवा बाइट पिक्सेल = नवीन बाइट; int index = 0; वापरून (स्ट्रीम pixelStream = bitmap.PixelBuffer.AsStream()) ( pixelStream.ReadAsync(pixels, 0, pixels.Length) प्रतीक्षा करा; // (int y = 0; y) साठी पिक्सेलमध्ये पारदर्शकता लागू करा< bitmap.PixelHeight; y++) { double opacity = (double)y / bitmap.PixelHeight; for (int x = 0; x < bitmap.PixelWidth; x++) for (int i = 0; i < 4; i++) { pixels = (byte)(opacity * pixels); index++; } } // Пикселы помещаются обратно в изображение pixelStream.Seek(0, SeekOrigin.Begin); await pixelStream.WriteAsync(pixels, 0, pixels.Length); } bitmap.Invalidate(); reflectedImage.Source = bitmap; } } }

Windows.Storage.Streams नेमस्पेस समाविष्ट करण्यासाठी बफर वर्ग नाव पूर्णपणे पात्र असणे आवश्यक आहे कारण सिस्टम नेमस्पेसमध्ये बफर नावाचा वर्ग देखील आहे.

आमच्या ध्येयांपैकी एक प्रकारची वस्तू पास करणे आहे IRandomAccessStream WriteableBitmap ऑब्जेक्टच्या SetSource पद्धतीवर. तथापि, आम्ही परिणामी प्रतिमेच्या पिक्सेलसह त्वरित कार्य करण्यास प्रारंभ करू इच्छितो आणि फाइल पूर्णपणे वाचल्याशिवाय हे शक्य नाही.

हे फाइलस्ट्रीम ऑब्जेक्ट वाचण्यासाठी बफर ऑब्जेक्टची निर्मिती आणि नंतर त्यातील सामग्री वाचण्यासाठी त्याच बफर ऑब्जेक्टचा वापर स्पष्ट करते. InMemoryRandomAccessStream. त्याच्या नावाप्रमाणे, InMemoryRandomAccessStream वर्ग IRandomAccessStream इंटरफेस लागू करतो जेणेकरुन त्याची उदाहरणे WriteableBitmap क्लासच्या SetSource पद्धतीने पास केली जाऊ शकतात (लक्षात ठेवा की प्रवाहातील स्थान प्रथम शून्यावर रीसेट करणे आवश्यक आहे).

हे समजून घेणे महत्त्वाचे आहे की आम्ही येथे डेटाच्या दोन भिन्न ब्लॉक्ससह कार्य करत आहोत. फाइलस्ट्रीम ऑब्जेक्टशी संबंधित आहे PNG फाइल, जे मध्ये या प्रकरणातकॉम्प्रेस्ड ग्राफिक्स डेटाचा 82,824 बाइट्सचा ब्लॉक आहे. InMemoryRandomAccessStream ऑब्जेक्टमध्ये डेटाचा समान ब्लॉक असतो. स्ट्रीम WriteableBitmap क्लासच्या SetSource पद्धतीने पास केल्यानंतर, तो पिक्सेलच्या पंक्ती आणि स्तंभांमध्ये डीकोड केला जातो. पिक्सेल ॲरेचा आकार 512,000 बाइट्स आहे आणि pixelStream ऑब्जेक्ट या अनपॅक केलेल्या पिक्सेलवर चालतो. पिक्सेलस्ट्रीम ऑब्जेक्ट प्रथम पिक्सेल ॲरेमध्ये पिक्सेल वाचण्यासाठी वापरला जातो आणि नंतर त्यांना प्रतिमेवर परत लिहितो.

फक्त एक अल्फा बाइट बदलल्यावर काय होते हे तुम्हाला पहायचे असल्यास, खालील अंतर्गत लूप कोड बदला:

जर (i == 3) ( पिक्सेल = (बाइट)(अपारदर्शकता * पिक्सेल); अनुक्रमणिका++; )

दोन कॉल्स दरम्यान थेट अर्ज आहे ग्रेडियंट पारदर्शकता. WriteableBitmap पिक्सेल अल्फा-प्रीमल्टीप्ली फॉरमॅटमध्ये साठवले जातात असे Windows रनटाइमने गृहित धरले नसेल, तर ते फक्त अल्फा बाइट सुधारण्यासाठी पुरेसे असेल. अल्फा पूर्व-गुणाने, रंग डेटा देखील सुधारित करणे आवश्यक आहे. परिणाम असे दिसते:

पारदर्शकतेची इच्छित पातळी प्राप्त केली जाते, परंतु केवळ पांढरी पार्श्वभूमी वापरताना. जर पार्श्वभूमी काळी असेल तर पारदर्शकता अजिबात राहणार नाही! सूत्रांवर एक नजर टाका आणि सर्वकाही तुमच्यासाठी स्पष्ट होईल.

समजा तुम्ही सर्कुलरग्रेडियंट प्रोजेक्ट बदलून सॉलिड कलरपासून संपूर्ण पारदर्शकतेपर्यंत ग्रेडियंट वापरायचा आहे. चार बाइट सेट करण्यासाठी सुधारित कोड असे दिसते:

पिक्सेल = (बाइट)(अपूर्णांक * 255); // ब्लू पिक्सेल = 0; // ग्रीन पिक्सेल = 0; // लाल पिक्सेल = (बाइट)(अपूर्णांक * 255); // अल्फा

निळ्या आणि अल्फा घटकांना समान मूल्ये नियुक्त केली आहेत. अल्फा पूर्वगुणित न करता स्वरूपामध्ये, निळा घटक नेहमी 255 असेल. परिणाम:

: अल्फा चॅनेल. निवडक क्षेत्रे जतन करणे हे त्यांचे कार्य आहे जेणेकरून तुम्ही ते नंतर वापरू किंवा संपादित करू शकता.

नावाच्या प्रक्रियेतून त्यांना त्यांचे नाव मिळते अल्फा संयुग्मजेव्हा अंशतः पारदर्शक प्रतिमा(एक ज्यामध्ये पारदर्शक क्षेत्रे आहेत) दुसर्या प्रतिमेसह एकत्र केली जाते - अशा प्रकारे दिग्दर्शक विशेष प्रभाव आणि बनावट पार्श्वभूमी तयार करतात.

ही शक्तिशाली सामग्री आहे कारण समान तंत्रज्ञान परवानगी देते. ते तयार करण्यासाठी खूप वेळ लागू शकतो; आम्ही बोलत आहोतविशेषतः जटिल निवडीबद्दल, ज्यास कधीकधी अनेक तास लागतात. जोपर्यंत तुम्ही दस्तऐवज PSD फाइल म्हणून सेव्ह कराल, तोपर्यंत अल्फा चॅनल तुमच्या सेवेत नेहमी असेल.

अल्फा चॅनेल लागू करण्याचा सर्वात सामान्य मार्ग म्हणजे लेयर मास्क तयार करणे. कारण ते अविश्वसनीयपणे तपशीलवार निवडी तयार करण्यासाठी वापरले जाऊ शकतात जे इतर कोणत्याही प्रकारे साध्य केले जाऊ शकत नाहीत.

अल्फा चॅनेल तयार करणे

तुमच्या निवडीचे कृष्णधवल प्रतिनिधित्व म्हणून याचा विचार करणे उपयुक्त आहे. आपण प्रोग्राम सेटिंग्ज बदलत नसल्यास, काळा क्षेत्र प्रतिमेचा न निवडलेला भाग सूचित करेल, याला देखील म्हणतात संरक्षित किंवा लपलेला भाग, आणि पांढरा हा निवडलेला भाग आहे. आणि, जसे की, राखाडी रंगाची छटा अंशतः निवडलेले क्षेत्र दर्शवते, उदा. याचा अर्थ ते अंशतः पारदर्शक आहेत.

तयार करण्यासाठी, खालीलपैकी एक करा:

  • नवीन चॅनेल तयार करा बटणावर क्लिक करून. या बटणावर क्लिक केल्याने अल्फा 1 नावाचा रिकामा अल्फा चॅनेल तयार होतो. तो पूर्णपणे काळा आहे कारण तो रिक्त आहे. निवड तयार करण्यासाठी, निवडा आणि पांढऱ्या रंगाने रंगवा (या प्रक्रियेचा विचार मुखवटामध्ये छिद्र काढणे म्हणून करा जेणेकरुन तुम्ही खाली काय आहे ते पाहू शकता आणि म्हणून हायलाइट करा). Alt की दाबून धरून तुम्ही या बटणावर क्लिक केल्यास, तुम्ही नाव नियुक्त करू शकता.
  • संघ निवडणे नवीन चॅनेल(नवीन चॅनल). ही कमांड निवडल्याने एक डायलॉग बॉक्स उघडेल ज्यामध्ये तुम्ही प्रोग्रामला नाव देऊ शकता आणि माहिती कशी प्रदर्शित करायची ते सांगू शकता.

जर तुम्हाला निवड काळा आणि बाकी सर्व काही पांढरे असायला आवडत असेल, तर डायलॉग बॉक्समधील स्विच निवडलेल्या भागात सेट करा. आपण वापरून अल्फा चॅनेल संपादित करू इच्छित असल्यास द्रुत मुखवटा, रंग आणि पारदर्शकता येथे बदलली जाऊ शकते. आवश्यकतेनुसार सर्व सेटिंग्ज सेट केल्यावर, ओके क्लिक करा.

  • निवड तयार करून आणि नंतर मेनू कमांड निवडून Selection => .
  • निवड तयार करून आणि चॅनेल म्हणून निवड जतन करा बटण क्लिक करून. हे चौकोनात कोरलेल्या वर्तुळासारखे दिसते.

अल्फा चॅनेल बदलणे

एकदा तयार केल्यावर, तुम्ही ते लेयर मास्क प्रमाणेच सानुकूलित करू शकता. तुम्ही ब्रश टूल वापरून त्यावर पेंट करू शकता किंवा ते सुधारण्यासाठी कोणतेही निवड साधन वापरू शकता. तुम्हाला सिलेक्शन टूल वापरायचे असल्यास, मेनू कमांड निवडा संपादित करा => भराआणि तुम्हाला काय करायचे आहे, त्यात जोडा किंवा निवडीतून वजा करा (निवड पांढरे आणि बाकी सर्व काही काळा आहे) यावर अवलंबून वापरा ड्रॉप-डाउन सूचीमधून काळा किंवा पांढरा निवडा.

तुम्हाला फोटोशॉपला माहिती उलटे दाखवायची असल्यास, उदाहरणार्थ, पांढऱ्या ऐवजी काळ्या रंगात दाखवा, लघुप्रतिमावर डबल-क्लिक करा. दिसणाऱ्या पर्याय संवाद बॉक्समध्ये, रेडिओ बटण निवडलेल्या क्षेत्रांवर सेट करा. आपण हे केल्यावर, प्रोग्राम मुखवटाचे रंग बदलेल.

तुम्ही क्विक मास्क मोड वापरून तुमचे अल्फा चॅनल संपादित देखील करू शकता. हे करण्यासाठी, संयुक्त चॅनेल दृश्यमानता चिन्हावर क्लिक करा. तुम्ही हे केल्यावर, प्रोग्राम इमेजच्या वर लाल आच्छादन ठेवेल. आपण असलेली प्रतिमा संपादित करत असल्यास मोठ्या संख्येनेलाल, तुम्हाला मास्कमधून काहीही दिसणार नाही. या प्रकरणात, आपल्याला आच्छादन रंग बदलण्याची आवश्यकता आहे.

याव्यतिरिक्त, तुम्ही लेयर मास्कप्रमाणेच अल्फा चॅनेलवर फिल्टर लागू करू शकता. सर्वात उपयुक्त फिल्टर्सपैकी मी नाव देईन गॉसियन ब्लरधार मऊ करण्यासाठी (तुम्ही थोडासा अस्पष्ट भाग हायलाइट करण्याचा प्रयत्न करत असल्यास उपयुक्त) आणि सेट करा ब्रश स्ट्रोक(मुखवटाला मूळ कडा देण्यासाठी).

काढणे

एकदा तुम्ही ते वापरून पूर्ण केले की (किंवा नव्याने सुरुवात करण्याचा निर्णय घ्या), तुम्ही ते वर्तमान चॅनेल हटवा बटणावर ड्रॅग करून हटवू शकता (थोडेसे कचरापेटीसारखे दिसते). किंवा या बटणावर क्लिक करा आणि हटवण्यास सांगितले जाईल तेव्हा होय क्लिक करा.

तुम्हाला मजकुरात त्रुटी आढळल्यास, ती निवडा आणि Ctrl + Enter दाबा. धन्यवाद!


चॅनेल म्हणजे काय?

प्रथम, सर्वसाधारणपणे चॅनेलबद्दल बोलूया. वापरलेल्या रंग मोडवर अवलंबून, चित्रात एकतर 3री किंवा 4थी चॅनेल आहे. तुम्ही RGB मोड वापरत असल्यास (जे स्क्रीनवर प्रदर्शित होणाऱ्या प्रत्येक गोष्टीसाठी वापरले जाते), इमेजमध्ये 3 चॅनेल आहेत: लाल, हिरवा आणि निळा. तुम्ही CMYK मोड वापरत असल्यास (मुद्रणासाठी वापरला जातो), इमेजमध्ये 4 चॅनेल आहेत. या चॅनेलमधील माहिती सूचित करते की इच्छित रंग तयार करण्यासाठी तुम्हाला प्रत्येक प्राथमिक रंगाचा किती वापर करावा लागेल (नीळ, नारंगी, गुलाबी, इ.). हे चॅनेल कोणत्याही रंगीत प्रतिमेसाठी मानक आहेत.

अल्फा चॅनेल म्हणजे काय?

अल्फा चॅनल एक अतिरिक्त चॅनेल आहे जो ड्रॉईंगमध्ये जोडला जाऊ शकतो. यात रेखांकनाच्या पारदर्शकतेबद्दल माहिती आहे आणि अल्फा प्रकारावर अवलंबून असू शकते विविध स्तरपारदर्शकता सर्वसाधारणपणे, अल्फा चॅनेल इतर सर्व चॅनेलची पारदर्शकता निर्धारित करते. तुमच्या ड्रॉईंगमध्ये अल्फा चॅनल जोडून, ​​तुम्ही लाल चॅनल, ग्रीन चॅनल आणि ब्लू चॅनेलची पारदर्शकता नियंत्रित करता.

अल्फा चॅनेलचे दोन प्रकार आहेत: प्री-गुणाकार आणि थेट अल्फा. वापरलेला प्रकार वापरलेल्या सॉफ्टवेअरवर अवलंबून असतो:

  • प्री-गुणाकार (फोटोशॉपमध्ये वापरलेले)
  • थेट अल्फा
पूर्व गुणाकार अल्फा
या प्रकरणात, प्रतिमेचा रंग पार्श्वभूमी रंगात मिसळला जातो. अल्फा पूर्णपणे अपारदर्शक ते पूर्णपणे पारदर्शक बदलतो.

थेट अल्फा
या प्रकरणात, प्रतिमा आणि पार्श्वभूमी रंग अपरिवर्तित राहतात, फक्त अल्फा चॅनेल बदलतात.

अल्फाला समर्थन देणारे फाइल प्रकार

खालील फाइल प्रकार अल्फाला समर्थन देतात:

  • PSD (फोटोशॉप)
  • GIF (1-बिट अल्फा)
TIFF, TGA, PNG, PSD आणि GIF सपोर्ट अल्फा, परंतु प्रत्यक्षात फक्त PNG आणि GIF अनुप्रयोग आणि वेबसाइट्समध्ये वापरले जातात. Gif, तथापि, विशेष 1-बिट प्रकारचा अल्फा वापरतो. पारदर्शकता पातळी समाविष्ट करण्याऐवजी, ते केवळ एकतर पारदर्शकता चालू करू शकते किंवा पूर्णपणे बंद करू शकते. याचा अर्थ GIF प्रतिमेचे पिक्सेल एकतर पूर्णपणे पारदर्शक किंवा पूर्णपणे अपारदर्शक असू शकतात. PSD हा फोटोशॉप फॉरमॅट आहे जो बहुतेक Adobe अनुप्रयोगांद्वारे समर्थित आहे.

अल्फा चॅनेल कसे वापरले जाते?

अल्फा चॅनेल वेगवेगळ्या कारणांसाठी वापरला जातो. बर्याच प्रकरणांमध्ये पार्श्वभूमी किंवा दुसर्या प्रतिमेवर प्रतिमा आच्छादित करणे आवश्यक आहे. फोटोशॉप सारख्या इमेज एडिटरमध्ये तुम्ही हे सर्व वेळ पाहू शकता. जेव्हा तुम्ही इमेज उघडता आणि दुसरी इमेज पहिल्या इमेजच्या वर ठेवता तेव्हा, परिणामी इमेज योग्यरित्या रेंडर करण्यासाठी फोटोशॉप आपोआप अल्फा व्हॅल्यू वापरते. इतर प्रकरणांमध्ये, अल्फा आवश्यक आहे जेणेकरुन सावल्या सारखे घटक भिन्न वर योग्यरित्या प्रस्तुत केले जाऊ शकतात पार्श्वभूमी प्रतिमा. फोटोशॉप मुखवटे आणि निवडीसाठी अल्फा चॅनेल देखील वापरते. अल्फा चॅनेलचा वापर पार्श्वभूमी, प्रतिमा आणि इतर अर्ध-पारदर्शक प्रतिमांच्या शीर्षस्थानी अर्ध-पारदर्शी प्रतिमा प्रदर्शित करण्यासाठी देखील केला जाऊ शकतो.

अल्फा चॅनेलचा फायदा काय आहे?

अल्फा चॅनेलचा मुख्य फायदा म्हणजे त्यांचे व्हिज्युअल अपील. अल्फा चॅनेलशिवाय, एकमेकांच्या वर रचलेल्या प्रतिमा गुळगुळीत केल्या जाऊ शकत नाहीत आणि त्यांना दातेदार कडा असतात. हे फार चांगले दिसत नाही. आणखी एक फायदा म्हणजे वेग. तुम्ही अल्फा चॅनेलसह प्रतिमा जतन करता तेव्हा, पारदर्शकता पातळी त्यासह जतन केली जातात. त्यानंतर, तुम्ही ही प्रतिमा इतर कोणत्याही वर ठेवू शकता आणि प्रतिमेचे स्वरूप जतन केले जाईल. यामुळे तुमचा वेळ वाचतो, कारण... तुम्ही प्रतिमा थेट पार्श्वभूमीच्या वर थेट जतन न करता ठेवू शकता योग्य मुद्दाइच्छित पार्श्वभूमीवर.

लक्षात घ्या की GIF फॉरमॅटमध्ये सावल्या जतन करण्यासाठी, आम्ही इमेजचा काही भाग मॅट रंगात सोडला पाहिजे, तर PNG मध्ये आमच्याकडे फक्त अर्ध-पारदर्शक पिक्सेल शिल्लक आहेत.

वेक्टर क्लिपिंग मार्गाच्या विपरीत, अल्फा चॅनेल— प्रतिमेमध्ये अतिरिक्त रास्टर चॅनेल (ग्रेस्केलमध्ये), त्याच्या पारदर्शक भागांबद्दल माहिती संग्रहित करते. ग्रेस्केल प्रतिमेच्या क्षेत्रांच्या पारदर्शकतेची डिग्री निर्धारित करते. अल्फा चॅनेलचे नाव बदलले जाऊ शकते, संपादित केले जाऊ शकते आणि त्यावर विविध फिल्टर लागू केले जाऊ शकतात - या संदर्भात ते इतर चॅनेलच्या बरोबरीचे आहे.

येथे त्याचे साधक आणि बाधक आहेत: प्रत्येक नवीन चॅनेलसह, फाइलचा आकार लक्षणीय वाढतो (प्रतिमेच्या दृश्यमान भागाचा आकार महत्त्वाचा नाही - मेमरीमध्ये चॅनेल प्रतिमेचे संपूर्ण क्षेत्र व्यापते); परंतु आपण आंशिक पारदर्शकतेसह क्षेत्रे तयार करू शकता आणि मुखवटा ही नियमित रास्टर प्रतिमा असल्याने, आपण परिचित साधनांसह (ब्रश) कार्य करू शकता.

आंशिक पारदर्शकतेसह अल्फा चॅनेल असलेल्या प्रतिमा, पूर्णतया (सह क्षेत्रांच्या पुरेशा प्रदर्शनासह भिन्न पारदर्शकता) काही अनुप्रयोगांद्वारे समर्थित आहेत. लेखकाला माहीत असलेल्या नॉन-ग्राफिकल सॉफ्टवेअरपैकी, फक्त Internet Explorer 5.5 आणि त्यावरील सॉफ्टवेअर त्यात सपोर्ट करते PNG स्वरूप. उर्वरित (लेआउट पॅकेजेससह) केवळ "पारदर्शक/अपारदर्शक" स्तरावर अल्फा चॅनेलच्या क्षमतेपुरते मर्यादित आहेत. खरे आहे, ते या राज्यांमधील थ्रेशोल्ड व्यक्तिचलितपणे सेट करण्यासाठी प्रदान करतात (आपण 10% ब्राइटनेस सेट करू शकता, आणि 50% नाही, नेहमीप्रमाणे, चॅनेलमध्ये पूर्णपणे पारदर्शक क्षेत्रे निश्चित केली जातील). विचारात घेत वास्तविक संधीप्रोग्राम्स, अल्फा चॅनेलचा अर्थ सहसा मुखवटा असतो पूर्ण पारदर्शकताप्रतिमा, म्हणजे ते केवळ कृष्णधवल म्हणून पाहतात.

वेगवेगळ्या संपादकांमध्ये, पारदर्शकता वेगवेगळ्या रंगांमध्ये व्यक्त केली जाते: काहींचा असा विश्वास आहे की पारदर्शक क्षेत्रे काळ्या (फोटोशॉपने हे करतात), इतर - पांढऱ्या (फोटोपेंट) द्वारे निर्धारित केले जातात. नियमानुसार, सर्व अधिक किंवा कमी गंभीर रास्टर संपादक आपल्याला क्लिपिंग पथ पारदर्शकता मास्कमध्ये रूपांतरित करण्याची परवानगी देतात आणि त्याउलट - निवडलेल्या क्षेत्रास वेक्टर मार्गामध्ये ट्रेस करतात.

च्या साठी पुढील कामवेक्टर किंवा लेआउट पॅकेजेसमध्ये प्रतिमा असलेल्या अर्धपारदर्शक क्षेत्रे, ते अल्फा चॅनेल (किंवा अनेक चॅनेल) म्हणून रेकॉर्ड केले जातात आणि प्रतिमा स्वतः TIFF स्वरूपात जतन केली जाते. जरी DCS 2 पारदर्शकतेचे समर्थन करत असले तरी, बहुतेक संपादक (फोटोशॉप सारखे) अजूनही अल्फा चॅनेलची माहिती त्यात जतन करत नाहीत. TIFF ची बहुस्तरीय प्रतिमा म्हणून रेकॉर्ड करण्याच्या क्षमतेबद्दल वेगळे स्तर, नंतर केवळ वेक्टर संपादक (इलस्ट्रेटर, कोरलड्राव) त्यांना योग्यरित्या समजतात नवीनतम आवृत्त्या. म्हणून, या प्रकारचे TIFF लेआउट पॅकेजसह कार्य करण्यासाठी योग्य नाही.

वेगवेगळ्या संपादकांमध्ये अल्फा चॅनेल तयार करणे जवळजवळ एकसारखे आहे: फक्त फरक शब्दावलीत आहेत.

अडोब फोटोशाॅप

Lasso, Polygonal Lasso आणि Magic Wand टूल्स एडिटरमध्ये इमेजचे निवडलेले क्षेत्र तयार करतात. च्या साठी जलद बचतहे अल्फा चॅनेल म्हणून अभिप्रेत आहे सेव्ह बटणचॅनेल म्हणून निवड (चॅनेल म्हणून निवड जतन करा) - चॅनेल पॅलेट. चॅनल सक्रिय झाल्यानंतर सामग्री पाहिली जाते.

दुसरा पर्याय - द्रुत मोडमास्क (क्विक मास्क), एकाच वेळी स्वतःची प्रतिमा आणि त्याचा मुखवटा दर्शवितो, सर्व उपलब्ध पद्धतींनी संपादित केला जातो: ब्रश, एअरब्रश, इरेजर इ. परंतु तयार केलेला मुखवटा तात्पुरता आहे; ते सेव्ह करण्यासाठी, तुम्हाला ते अल्फा चॅनेल (चॅनेल/नवीन चॅनेल पॅनेल) मध्ये किंवा सिलेक्ट/सेव्ह सिलेक्शनद्वारे रूपांतरित करावे लागेल. अल्फा चॅनेलमध्ये माहिती संचयित करताना, तुमच्याकडे एक पर्याय आहे: नवीन चॅनेल तयार करणे किंवा अस्तित्वात असलेल्या कोणत्याही मूलभूत ऑपरेशन्स (जोडणे, वजा करणे, सामान्य भाग शोधणे).

अल्फा चॅनेलसह टीआयएफएफ स्वरूपात प्रतिमा जतन करताना, अल्फा चॅनेल चेकबॉक्स चेक केलेला असल्याची खात्री करा (या पर्यायापुढील चेतावणी चिन्ह दर्शवून संपादक तुम्हाला याबद्दल सूचित करेल).

कोरल फोटोपेंट

मुखवटा तयार करण्याची साधने फोटोशॉपमध्ये सापडलेल्या उपकरणांसारखीच आहेत. उपलब्ध पद्धतींपैकी कोणत्याही पद्धतीचा वापर करून, निवड क्षेत्र (वर्तमान मुखवटा) तयार केले जाते आणि नंतर चॅनेल रोलआउटमधून नवीन चॅनेल आयटमद्वारे अल्फा चॅनल म्हणून जतन केले जाते (किंवा चॅनेल म्हणून मास्क/जतन करा/जतन करा). मास्क संपादित करणे मानक पद्धती (ड्रॉइंग टूल्स) किंवा मास्क टूल ग्रुप वापरून केले जाते. भविष्यातील ऑपरेशनचे स्वरूप स्पष्टपणे निर्दिष्ट केले जाणे आवश्यक आहे (ॲडिटिव्ह किंवा सबट्रॅक्टिव्ह मोड).

डिस्कवरील निवड क्षेत्र स्वतंत्र फाईल (मास्क/सेव्ह/सेव्ह मास्क टू डिस्क) म्हणून सेव्ह करणे हे एक मनोरंजक वैशिष्ट्य आहे. आणि ते लोड/लोड फ्रॉम डिस्क कमांडसह लोड करतात.

अल्फा चॅनेलसह फायली जतन करण्यासाठी कोणत्याही अतिरिक्त सेटिंग्जची आवश्यकता नाही.

प्रकाशन प्रणाली

आम्ही प्रकाशन तयार करण्याच्या प्राथमिक टप्प्यात पारदर्शकता मास्क तयार करणे आणि संपादित करणे या मुद्द्यांचा विचार केला. अंतिम टप्प्यावर, सर्व रिक्त जागा लेआउट पॅकेजमध्ये गोळा केल्या जातात.

सर्व प्रकाशन पॅकेजने वेक्टर क्लिपिंग पथ आणि रास्टर इमेज मास्क व्यवस्थापित करण्यासाठी यंत्रणा विकसित केली आहे. प्रतिमेचा भाग क्रॉप करण्याच्या कार्यांव्यतिरिक्त, मुखवटे प्रवाहाच्या सीमा दर्शविण्यासाठी वापरतात. मजकूर चित्रे. म्हणून, संपादकांमधील ऑपरेशनचे मापदंड (क्लिपिंग आणि रनराउंड) एकसारखे आहेत.

प्रत्येक एडिटरमध्ये विशिष्ट वैशिष्ट्ये देखील असतात. Adobe InDesign चा मुख्य फायदा म्हणजे त्याची इतर Adobe उत्पादनांशी पूर्ण सुसंगतता आहे, ज्यामुळे तुम्हाला कागदपत्रे एका ऍप्लिकेशनमधून दुसऱ्या ऍप्लिकेशनमध्ये सहजपणे हलवता येतात, ज्यामुळे प्रकाशनाला योग्य कलात्मक अभिव्यक्ती मिळते. सर्व वैशिष्ट्ये पूर्णपणे समर्थित आहेत PSD स्वरूपआणि AI म्हणून सार्वत्रिक उपायदरम्यान देवाणघेवाण Adobe अनुप्रयोग(पारदर्शक मुखवटे, रास्टर प्रभाव). दुर्दैवाने, इतर संपादकांकडे अशी लवचिकता नसते - ते सर्व आगामी निर्बंधांसह मानक TIFF आणि EPS द्वारे कार्य करतात.

पेजमेकर

लेआउट मार्केटचा जुना-टाइमर, अरेरे, यापुढे विकसित होणार नाही. परंतु सातव्या आवृत्तीमध्ये, अनेक उपयुक्त नवकल्पना दिसू लागल्या: PDF सह कार्य करणे आणि मूळ "कुटुंब" स्वरूपांसाठी पूर्ण समर्थन - PSD आणि AI. नवकल्पना अंशतः निर्बंध काढून टाकतात मागील आवृत्त्या— पारदर्शकतेसह चित्रे आता कोणत्याही समस्यांशिवाय लेआउटमध्ये वापरली जातात. सहमत आहे, संपादकाला PSD आणि AI ला सपोर्ट करण्यापेक्षा जास्त फायदा झाला, उदाहरणार्थ, पारदर्शकता मास्क (आणि त्यात थोडासा) सपोर्ट करण्यापासून.

परंतु येथे देखील, मलममध्ये एक माशी आहे: संपादक PSD मधील रास्टर पारदर्शकता मास्क ओळखत नाही - फक्त वेक्टर आहेत. पारदर्शकतेसह आणि विविध प्रतिमांभोवती मजकूर आपोआप गुंडाळण्याची कार्ये भौमितिक आकार. पूर्वीप्रमाणेच, अशा ऑपरेशन्ससाठी आपल्याला व्यक्तिचलितपणे प्रवाह सीमा तयार करावी लागेल, जी आता संपूर्ण अनाक्रोनिझमसारखी दिसते. पॅकेजमधील इंडेंटेशन समायोजन फक्त पासून मोजले जातात एकूण परिमाणेऑब्जेक्ट (बाउंडिंग बॉक्स), आणि त्याच्या वास्तविक सीमांशी संबंधित नाही - त्यानुसार, दावा न केलेले राहतील.

जेव्हा त्याचे स्क्रीन प्रतिनिधित्व EPS मध्ये रेकॉर्ड केले जात नाही, तेव्हा पॅकेज स्वतः पोस्टस्क्रिप्टवरून रास्टरायझेशन करते, परंतु हे विशेषतः मजबूत नसते - प्रतिमा अनेकदा चुकीच्या पद्धतीने पुनरुत्पादित केली जाते (उदाहरणार्थ, पांढरी पार्श्वभूमी म्हणून). जर सामग्रीच्या रंगीत स्क्रीन कॉपीसह EPS लागू केले असेल, तर पूर्वीच्या आवृत्त्यापारदर्शक क्षेत्रे योग्यरित्या प्रदर्शित केलेली नाहीत. अशा फायली b/w पूर्वावलोकनासह जतन करणे हा उपाय आहे (समस्या आवृत्ती 7 मध्ये सोडविली गेली आहे).

चित्रे घालण्यातही अडचणी येतात TIFF स्वरूप: दुर्दैवाने, PhotoPAINT द्वारे जतन केलेल्या क्लिपिंग पथांवर आधारित पारदर्शकता माहिती समर्थित नाही. अशा प्रतिमा EPS स्वरूपात जतन करा. जसे आपण पाहू शकता, संपादकास बर्याच समस्या आहेत - म्हणूनच ते मुख्यतः उत्पादनांच्या लेआउटसाठी वापरले जाते ज्यामध्ये जटिल आराखड्यांभोवती वाहणे यासारखे कोणतेही विशेष परिष्करण करण्याची आवश्यकता नाही.

क्वार्कएक्सप्रेस

XPres हे क्वार्कचे फ्लॅगशिप पॅकेज आहे. कलात्मक अभिव्यक्तीच्या बाबतीत, लेआउटच्या क्षेत्रातील दिग्गज तरुण पिढीपेक्षा निकृष्ट आहे, परंतु प्रतिमेचा काही भाग मुखवटा घालण्यासाठी आणि मजकूराच्या प्रवाहावर नियंत्रण ठेवण्यासाठी तो सहजपणे अल्फा चॅनेल आणि क्लिपिंग पथांसह कार्य करतो. प्रतिमांसह आयात केलेल्या क्लिपिंग पथांसह कार्य करण्याव्यतिरिक्त, XPres प्रदान करते भरपूर संधीत्यांना स्वतः तयार करण्यासाठी.

सर्व पॅरामीटर्समध्ये प्रवेश करण्यासाठी, तुम्हाला चित्रासह कंटेनर निवडणे आवश्यक आहे आणि आयटम/क्लिपिंग कमांडवर क्लिक करणे किंवा कार्यान्वित करणे आवश्यक आहे (टेक्स्ट रॅपिंग नियंत्रित करण्यासाठी - आयटम/रनराउंड). दिसणाऱ्या डायलॉग बॉक्समध्ये, पारदर्शकता माहिती ज्या फॉर्ममध्ये सेव्ह केली जाते त्यानुसार एम्बेडेड पथ किंवा अल्फा चॅनेल डीफॉल्टनुसार सक्रिय असेल.

संपादकामध्ये EPS आणि TIFF सह काम करण्याची क्षमता लक्षणीय भिन्न आहे.प्रथमसाठी, क्लिपिंग पथ नियुक्त केलेला असेल रास्टर संपादक. इतर कोणतेही "स्वातंत्र्य" प्रदान केलेले नाहीत. मजकूर रॅपिंगसाठी अधिक स्वातंत्र्यास अनुमती आहे: आपण प्रतिमेमध्ये अस्तित्वात असलेला कोणताही मार्ग निवडू शकता आणि बरेच अतिरिक्त पर्याय उपलब्ध होतात. TIFF सह काम करताना कमाल लवचिकता:कोणत्याही प्रकारच्या मुखवटाची निवड आणि नैसर्गिकरित्या, पूर्ण संचत्यांचे व्यवस्थापन करण्याचे साधन.

पारदर्शकता मास्कचे कोणते मापदंड समायोजित केले जाऊ शकतात?

प्रथम, क्लिपिंग पथ किंवा अल्फा चॅनेल निवडा जे कार्य करेल. टॉलरन्स पॅरामीटर गट संपादनासाठी उपलब्ध होतो, जेथे मास्कच्या अचूक नियंत्रणासाठी सेटिंग्ज गोळा केल्या जातात.

सुरुवातसमोच्च सीमा विस्तृत किंवा अरुंद करण्यासाठी डिझाइन केलेले. त्याच्या ऍप्लिकेशनचे एक लोकप्रिय क्षेत्र चित्र आणि त्याच्याभोवती गुंडाळलेला मजकूर यांच्यातील अंतर सेट करत आहे. कमाल मूल्यअंतर - 288 टायपोग्राफिक पॉइंट्स (पॉइंट), म्हणजे फक्त 20 सेमी.

गोंगाटपरिभाषित करते किमान आकारसमोच्च (बिंदूंमध्ये), संपादकाने विचारात घेतले. सामान्यतः जर ग्राफिक्स एडिटरमध्ये मुखवटा घातलेले क्षेत्र मॅजिक वँड सारख्या साधनांनी बनवले गेले असेल तर त्यांची सीमा पुढे गुळगुळीत न करता वापरली जाते, ज्यामुळे अनेक लहान मार्ग तयार होतात.

गुळगुळीतपणासमोच्च पुनरुत्पादनाची अचूकता सेट करते: मूल्य जितके कमी असेल तितके प्रिंटर चित्रण "कट" करेल, परंतु नियंत्रण बिंदूअधिक तयार केले जातील. जर त्यांचे मूल्य एका विशिष्ट थ्रेशोल्डपेक्षा जास्त असेल तर, क्वार्कएक्सप्रेस आपोआप इंटरपोलेशनद्वारे संख्या कमी करेल.

पॅरामीटर उंबरठा b/w बिट मास्क वापरण्याच्या बाबतीत निर्दिष्ट केले आहे, परंतु ग्रेस्केलमध्ये: मुखवटाची सीमा स्पष्टपणे परिभाषित केलेली नसल्यामुळे, क्लिपिंग मार्ग कुठेही काढला जाऊ शकतो. थ्रेशोल्ड मूल्य थ्रेशोल्ड ब्राइटनेस निर्धारित करते जे मुखवटा नसलेल्या भागांपासून मुखवटा घातलेले क्षेत्र वेगळे करते. थ्रेशोल्ड 10% वर सेट केल्यास, केवळ 11% किंवा त्याहून अधिक ब्राइटनेस असलेले पिक्सेल दृश्यमान असतील.

पारदर्शक क्षेत्रे तयार करण्यासाठी क्वार्कएक्सप्रेसच्या स्वतःच्या क्षमतांपैकी, आम्ही नॉन-व्हाइट क्षेत्र आणि ऑटो इमेज मोडवर लक्ष केंद्रित करू. पहिल्या प्रकरणात, पॅकेज पांढरा रंग असलेल्या क्षेत्रांबद्दल माहितीचे विश्लेषण करते. प्रतिमाने विशिष्ट निकष पूर्ण केले पाहिजेत (क्षेत्रांमध्ये स्पष्ट सीमा असणे आवश्यक आहे) या वस्तुस्थितीमुळे मोडला कमी मागणी आहे, जे अत्यंत क्वचितच घडते. थ्रेशोल्ड पॅरामीटर काही मदत पुरवतो, परंतु ग्राफिक्स एडिटरमध्ये इमेज पूर्व-तयार करणे सोपे आणि जलद आहे.

अतिरिक्त पॅकेज सेटिंग्ज - बॉक्समध्ये मर्यादित करा(चित्रण असलेल्या कंटेनरच्या आकारापर्यंत पारदर्शकता सीमा मर्यादित करा) आणि उलटा (मुखवटाची सीमा उलटा). प्रथम दृष्टीक्षेपात असलेल्या नियंत्रण बिंदूंकडे दुर्लक्ष करून मार्ग सुलभ करण्यात मदत करते.

नवीन पारदर्शकता मास्क निवडण्याचा परिणाम पाहण्यासाठी रस्कॅन बटण डिझाइन केले आहे. मास्क पॅरामीटर सहजपणे बदलण्यासाठी, लागू करा वापरा. आणि जर तुम्हाला मास्क वापरणे पूर्णपणे थांबवायचे असेल तर, मास्क प्रकारांच्या सूचीमधून आयटम निवडा.

तुम्ही व्युत्पन्न केलेल्या वक्रतेची जटिलता नियंत्रित करू शकता माहिती फील्डमाहिती, ज्यामध्ये वर्तमान ऑब्जेक्टवरील सर्व डेटा असतो. जरी अल्फा चॅनेल निर्दिष्ट केले असले तरीही, संपादक अद्याप ते शोधून काढतो आणि वक्रमध्ये प्राप्त झालेल्या नियंत्रण बिंदूंची संख्या सूचित करतो.

ग्राफिक एडिटरमध्ये स्थापित केलेल्या प्रगत पारदर्शकता नियंत्रण कार्यांव्यतिरिक्त, QuarkXPress तुम्हाला मास्कचा आकार कधीही बदलण्याची परवानगी देते. स्वतःचा निधी. परंतु ही एक परिश्रम घेणारी प्रक्रिया आहे, प्रथम माहिती क्षेत्रामध्ये वक्रच्या जटिलतेचे मूल्यांकन करा. नियमानुसार, लेआउट दरम्यान, मजकूर रॅपिंग (रनराउंड टॅब) थेट क्लिपिंग पथ आकार (क्लिपिंग टॅब) शी जोडलेले आहे. प्रक्रिया एकत्र करण्यासाठी, रनअराउंड टॅबमध्ये क्लिपिंग आयटमच्या रूपात एक समान आहे - बाह्यरेखाच्या आकारात केलेले सर्व बदल मजकूराच्या पुनर्वितरणावर आपोआप परिणाम करतील. जर तुम्हाला मजकुराभोवती गुंडाळलेल्या पथाचा आकार बदलायचा असेल तर, प्राधान्ये/परस्परसंवादी/विलंबित आयटम ड्रॅगिंग/विलंब मधील फील्डचे मूल्य तपासा, हे संपादन प्रक्रियेस गती देईल.

जा मॅन्युअल मोडएम्बेड केलेला मार्ग संपादित करणे क्लिक करून (किंवा आयटम/एडिट/क्लिपिंग पाथ कमांड वापरून) होते. क्लिपिंग पथ दृश्यमान होतो - त्याच्या सर्व घटक नियंत्रण नोड्ससह. आयटम टूल नोड्स हलवते, जोडते आणि हटवते, त्यांचा प्रकार बदलते, विभागांचे प्रकार, मार्गदर्शक समायोजित करते - क्वार्कएक्सप्रेस नियमित मध्ये बदलले आहे वेक्टर संपादक. नियंत्रणे मोजमाप पॅलेटमध्ये दिसतात. नोड्स जोडण्यासाठी किंवा काढण्यासाठी - की; वैयक्तिक नोड्यूल आणि संपूर्ण विभाग दोन्ही हलतात. पूर्ण आकार दिल्यानंतर, पुढील प्रेस वर परत येईल सामान्य पद्धतीमांडणी त्यानंतर तुम्ही आयटम/क्लिपिंग केल्यास, वापरकर्ता-संपादन पथ प्रकार सक्रिय होईल. सावधगिरी बाळगा: इतर कोणत्याही प्रकारची निवड केल्याने मॅन्युअली संपादित पथ माहिती नष्ट होईल.

मासिके विनामूल्य उपलब्ध आहेत.



आम्ही वाचण्याची शिफारस करतो

वर