2012-09-28 14 views
7

मेरे पास Canvas ऑब्जेक्ट प्रारंभ में है। मुझे अपने वर्तमान रंग के आधार पर कुछ पिक्सेल के रंग को बदलने की जरूरत है। मैं इसे उचित तरीके से कैसे कर सकता हूं?एंड्रॉइड कैनवास कुछ पिक्सल रंग बदलते हैं

विवरण:

मैं अपने ही वर्ग ImageView से विस्तार किया है। onDraw(Canvas canvas) विधि में मैं तीसरे पक्ष के वर्ग के साथ कुछ खींचता हूं और परिणाम के साथ केवल Canvas ऑब्जेक्ट करता हूं। मुझे अपने वर्तमान रंग के आधार पर कुछ पिक्सेल के उस परिवर्तन रंग की आवश्यकता है।

+0

आपको प्रत्येक पिक्सेल के माध्यम से पुनरावृत्त करने की आवश्यकता होगी, अपना वर्तमान रंग प्राप्त करें, और अपना नया रंग सेट करें। – user1706950

+0

मुझे पता है, और कैसे? :) ड्राइंग के लिए मैं 'canvas.drawPoint (x, y, paint) 'का उपयोग कर सकता हूं, लेकिन पिक्सेल का रंग कैसे प्राप्त करें? –

+0

और बीटीडब्ल्यू, मुझे उचित समाधान की आवश्यकता है, मेरा मतलब कुशल और तेज़ है। –

उत्तर

3

यह मानते हुए कि आप android.graphics.Canvas वस्तु कहा जाता है canvas और X & Y अंक जहां आप जाना पिक्सेल को बदलना चाहते हैं, तो यहाँ हैं

कॉल:

canvas.drawPoint(X, Y, paint); 

का तरीका यहां बताया वर्ग की वस्तु initalize है android.graphics.Paint यानी पेंट

Paint paint = new Paint(); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 

विभिन्न पदों पर एकाधिक पिक्सेल बदलने के लिए इस Link पर और अधिक खोजें, ऐसे कई कार्य हैं जो आपको प्राप्त करने में आपकी सहायता करेंगे। शुभकामनाएं :-)

+0

नहीं, स्थिति अलग है। मुझे एक्स, वाई नहीं पता। मैं केवल वर्तमान पिक्सेल रंग द्वारा निर्देशांक का पता लगा सकता हूं। पूर्व के लिए अगर कुछ पिक्सेल हरा है तो इसे नीले रंग के रूप में पेंट करें। –

1

ऐसा करने के लिए शायद एक दर्जन तरीके हैं। यदि आप कैनवास दृष्टिकोण करना चाहते हैं, तो बिटमैप ऑब्जेक्ट को आकर्षित करने का एक तरीका है। फिर आप वस्तु को दूसरे कैनवास में खींच सकते हैं। बिटमैप ऑब्जेक्ट में पिक्सेल को संशोधित करने के लिए फ़ंक्शन भी हो सकते हैं।

बिटमैप आपको एक प्रतिलिपि को एक बफर में भी जाने देता है, और यदि आप जानते हैं कि पिक्सल कैसे संग्रहीत किए जाते हैं, तो यह छवि कुशलता का एक तेज़ तरीका होगा। मुझे यकीन नहीं है कि कैनवास के पास

0

मैं Faster way to set a (PNG) bitmap color instead of pixel by pixel को देखने की अनुशंसा करता हूं। इसमें पिक्सेल (प्रश्न में) द्वारा बिटमैप रंग पिक्सेल प्राप्त करने और सेट करने के लिए कोड है, साथ ही पिक्सेल दृष्टिकोण (उत्तर में) द्वारा पिक्सेल के विकल्प के लिए एक सुझाव के लिए एक सुझाव है। यह भी संभवतः उपयोगी: Explanation of the method getPixels for a Bitmap in Android

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