الاتفاق الإطاري - أي تنفيذ Image.FromStream (تيار، منطقية، منطقية)؟

StackOverflow https://stackoverflow.com/questions/285440

سؤال

في تطبيق CF. NET كتبت، واحدة من السمات هو الحصول على لقطة من الكاميرات عن بعد. يتم الحصول على إطارات كصور الحياة السياسية في فرنسا واحدة وعرضها على الشاشة عندما تكون متاحة.

وكانت حلا جيدا بما فيه الكفاية، ولكن أنا لا أحب حقيقة أن الوقت اللازم لتحويل تيار إلى كائن Image، مع منشئ Bitmap()، هو بعيدا بعيدا بعيدا أكبر من الوقت اللازم لتحميل تيار.

وعندما متجول بعض بلوق للبحث عن هذا الموضوع، وجدت أن بعض المطورين يستخدمون طريقة Image.FromStream() الذي لديه علم validateImageData الذي يبدو للسيطرة على بعض رمز التحقق من الصحة. عندما validateImageData هو زائف، وتحويل يحصل بشكل كبير أسرع.

وجيد، وأعتقد .... ولكن الاتفاق الإطاري لا تطبق هذه الطريقة!

وأي شخص يعرف كيفية الحصول على من حوله، أو على الأقل كيفية تحويل تيار إلى Image دون تأخير لا لزوم لها؟

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

المحلول

ولست متأكدا إذا كان هذا سيساعد لكن OpenNETCF.Drawing.Imaging ديه دروس لقراءة الصور من تيارات، لكنها IImage ملفوفة الأجسام كوم. ثم يمكنك استخدام IImage.Draw لاستدراجه على الصورة النقطية الخاصة بك. كما أن لديها طريقة GetThumbnail التي تستخدم للحصول على صورة مصغرة من صور JPEG كبيرة على الجهاز.

هنا هو بلوق وظيفة عن ذلك من اليكس Feinman.

نصائح أخرى

إذا أبعاد JPEG كبيرة (مثل 1200 × 1600 بكسل أو شيء)، ثم واحدة من المشاكل السرعة التي تواجهها على جهازك مع منشئ نقطية هو حجم نقطية غير أن إنشاء في الذاكرة ( أن تكون الصورة النقطية 1200 x 1600 أيضا، حتى لو كان ثم عرضها على 240 X 320 شاشة). إذا كان يمكنك استرداد JPEG بالفعل الحجم 320 X 240 بدلا من واحدة كاملة الحجم، ينبغي أن يكون وقت إنشاء نقطية أقل من ذلك بكثير.

وأنا لا يمكن أن تجد أي بدائل لطريقة FromStream المفقودين الآخرين من منشئ نقطية. إذا كنت معتادا على شكل JPEG، وأنا لا أعتقد أنه سيكون من الصعب جدا لكتابة الخاصة بك تحويل JPEG إلى BMP، ولكن كنت أعتقد أنه لن يكون أسرع من نقطية ().

وتحرير: لن آسف، أنا يعني تحويل الخاص بك توالت الخاصة، وليس أن يكون أي أسرع في تحويل 240 X 320 JPEG إلى صورة نقطية 240 X 320. أعتقد أنه يمكن أن يتم على نحو أسرع كثيرا في تحويل JPEG أكبر من ذلك بكثير إلى صورة نقطية 240 X 320 لأنه يمكن أن تخطي خطوة لخلق الصورة النقطية كاملة الحجم لأول مرة.

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