سؤال

أتذكر منذ فترة من القراءة عن طريقة بديلة (تُعرف أيضًا باسم أسرع) لأداء أ getPixel()طريقة.

المشكلة هي ، لا أتذكر أين قرأت ذلك ، وقد بحثت تمامًا .. أعتقد.

كان للإجابة علاقة بقفل صورة نقطية في الذاكرة ، أو شيء من هذا القبيل.

أنا بحاجة للركض getPixel() عدة مرات "لكل حلقة" ، وهو أمر مكلف للغاية على ما يبدو.

هل يعرف أحد ما أتحدث عنه؟

هل كانت مفيدة؟

المحلول

ربما تفكر في Bitmap.getPixels(), ، والتي ستقوم بنسخ أي جزء من صورة نقطية إلى صفيف. من تلك النقطة فصاعدًا ، يمكنك الوصول مباشرة إلى أي بكسل باستخدام وصفة بسيطة ، وهو أسرع بكثير من الاتصال Bitmap.getPixel() عدة مرات.

ستواجه قرارًا للأداء مقابل قرار الذاكرة هنا: إذا كنت بحاجة إلى الاستعلام عن وحدات البكسل كثيرًا ، وإذا كان نادرًا ما يتغير صورة نقطية ، فاحتفظ بالمصفوفة (على حساب وجود هذه الصفيف في الذاكرة). إذا لم يكن الأمر كذلك ، فقم بإطلاق الاهتمام بالمصفوفة في أقرب وقت ممكن للتأكد من أنه يمكن جمعه عند الضرورة. من الواضح ، تجنب الاتصال getPixels() الكثير - الفكرة هي تسميتها مرة واحدة ثم الاستعلام عن الصفيف عدة مرات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top