कैसे Android में खींचें विरूपण छवि फ़िल्टर लागू करने के लिए?



opengl-es distortion (1)

मैं कस्टम छवि फ़िल्टर परियोजना पर काम कर रहा हूं और मैं एक चुनौतीपूर्ण कार्य के लिए आया था, जिसमें मैं विकृत फ़िल्टर लागू करना चाहता हूं जैसा कि मजेदार चेहरा प्रभाव ऐप में देखा जा सकता है। मैं मजेदार फेस इफेक्ट्स में उपलब्ध पहले 3 फ़िल्टर को विकसित करना चाहता हूं।

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

हमने किसी भी अन्य तीसरे पक्ष के वर्गों की खोज करने की कोशिश की, फिर GPUImage। लेकिन हमें उपयोगी सामान नहीं मिल सका।

हमारे प्रश्न निम्नानुसार हैं: -

1) क्या ड्रैग इशारेर का उपयोग कर खींचें फ़िल्टर लागू करना संभव है? (कोई कोड स्निपेट या संदर्भ सराहनीय)

2) किसी अन्य तीसरे पक्ष के अन्य वर्ग जीपीयू जो हमें उपरोक्त परिणाम प्राप्त करने में मदद कर सकते हैं।

अग्रिम में धन्यवाद!


इसे हासिल करने का एक तरीका यह है कि किसी अतिरिक्त टेक्सचर का उपयोग करने के लिए विखंडन लागू करने के लिए विखंडन को निर्दिष्ट करें। आप उस बनावट सामग्री को ऐप से संशोधित कर सकते हैं क्योंकि उपयोगकर्ता छवि को लागू करने के लिए छवि को छूता है।

GPUImageBulgeDistortionFilter GPUImageFilter का विस्तार करता है जो केवल एक बनावट का उपयोग करने के लिए डिज़ाइन किया गया है।

आपको टेक्सचर बाइंडिंग (ग्लबिइंडटिएक्शंस) का डुप्लिकेट और GPUImageFilter में टुकड़ा शिडर (ग्लूइंफॉर्म 1i) को असाइन करना होगा, जो 1 के लिए नए बनावट (0 के बजाय) का उपयोग करना होगा। आपको GGetUniformLocation को डुप्लिकेट करने के लिए और इनपुट इमेजटैक्शंस के बजाय अन्य नाम का उपयोग करने की आवश्यकता होगी, उदाहरण के लिए इनपुट इमेजटीक्चर 2।

GPUImageBulgeDistortionFilter पर टुकड़ा शाडर को संशोधित करें या GPUImageBulgeDistortionFilter से प्राप्त हुई एक नई श्रेणी "वर्दी नमूना 2 डी इनपुट इमेजटीक्चर 2; \ n"

अंत में इनपुट इमेजटीटेक्स्ट 2 टेक्क्स का उपयोग करने के लिए एक ही टुकड़ा शेडर में इनपुट इमेजटेक्चर पर डेटा को खराब करने के लिए कोड जोड़ें।





android-gpuimageview