بديل لـ bitmap.getpixel ()
سؤال
أتذكر منذ فترة من القراءة عن طريقة بديلة (تُعرف أيضًا باسم أسرع) لأداء أ getPixel()
طريقة.
المشكلة هي ، لا أتذكر أين قرأت ذلك ، وقد بحثت تمامًا .. أعتقد.
كان للإجابة علاقة بقفل صورة نقطية في الذاكرة ، أو شيء من هذا القبيل.
أنا بحاجة للركض getPixel()
عدة مرات "لكل حلقة" ، وهو أمر مكلف للغاية على ما يبدو.
هل يعرف أحد ما أتحدث عنه؟
المحلول
ربما تفكر في Bitmap.getPixels()
, ، والتي ستقوم بنسخ أي جزء من صورة نقطية إلى صفيف. من تلك النقطة فصاعدًا ، يمكنك الوصول مباشرة إلى أي بكسل باستخدام وصفة بسيطة ، وهو أسرع بكثير من الاتصال Bitmap.getPixel()
عدة مرات.
ستواجه قرارًا للأداء مقابل قرار الذاكرة هنا: إذا كنت بحاجة إلى الاستعلام عن وحدات البكسل كثيرًا ، وإذا كان نادرًا ما يتغير صورة نقطية ، فاحتفظ بالمصفوفة (على حساب وجود هذه الصفيف في الذاكرة). إذا لم يكن الأمر كذلك ، فقم بإطلاق الاهتمام بالمصفوفة في أقرب وقت ممكن للتأكد من أنه يمكن جمعه عند الضرورة. من الواضح ، تجنب الاتصال getPixels()
الكثير - الفكرة هي تسميتها مرة واحدة ثم الاستعلام عن الصفيف عدة مرات.