رمز المثال لتغيير حجم الصورة باستخدام دايركت

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

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا أعلم أنه من الممكن، وعلى نحو أسرع كثيرا من استخدام GDI +. ومع ذلك لم أجد أي خير مثال على استخدام DirectX لتغيير حجم الصورة وحفظها على القرص. لقد نفذت هذا مرارا وتكرارا في GDI +، ولهذا ليس من الصعب. ومع ذلك GDI + لا يستخدم أي تسريع الأجهزة، وكنت على أمل الحصول على أداء أفضل من خلال الاستفادة من بطاقة الرسومات.

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

المحلول

هل حقا تحتاج إلى استخدام دايركت؟ GDI + لا وظيفة جيدة لتغيير حجم الصور. في DirectX، أنت لا تحتاج إلى تغيير حجم الصور، وعلى الأرجح سوف يكون عرض الصور الخاصة بك والقوام. منذ القوام يمكن لا ينطبق إلا على وجوه 3D (مثلثات / مضلع / شبكة)، وحجم الجسم وعرض 3D ميناء يحدد الحجم الفعلي للصورة المعروضة. إذا كنت بحاجة إلى توسيع نطاق الملمس الخاص بك في غضون الكائن 3D، ومجرد لعب الملمس تنسيق أو المصفوفة.

لmanipute الملمس، يمكنك استخدام مزج ألفا، اخفاء وكل نوع من تقنية الملمس التلاعب، واذا كان هذا ما كنت أبحث عنه. التلاعب بكسل الفردية مثل GDI +، ما زلت أعتقد GDI + هي الطريقة للقيام به. وقد دايركت أبدا اصلاح للقيام معالجة الصور.

نصائح أخرى

ويمكنك تحميل الصورة كما الملمس، والملمس خريطة وضعها رباعية واستخلاص أن رباعية في أي حجم على الشاشة. وأن تفعل التحجيم. بعد ذلك يمكنك الاستيلاء على البيانات بكسل من الشاشة، واحفظها في ملف أو معالجة أكثر من ذلك.

ومن السهل. الأمثلة الأساسية التركيب دايركت التي تأتي مع SDK يمكن تعديلها لفعل ذلك.

ومع ذلك، فإنه <م> هو بطيئة. ليس تقديم نفسها، ولكن نقل البيانات بكسل من الشاشة إلى مخزن الذاكرة المؤقت.

وIMHO سيكون أسهل بكثير وأسرع لمجرد كتابة رمز صغيرة أن تغيير حجم صورة باستخدام المترابط التحجيم من المخزن واحد إلى آخر.

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