اريد عمل برنامج فور فتحة يقوم باظهار صورة على الشاشة الاولى لة مثل اغلب البرامج التى تعمل على نظام 16 بت اعزرونى لهذا السؤال حيث اننى مبتدأ فى لغة الاسمبلى
وفقكم الله
اريد عمل برنامج فور فتحة يقوم باظهار صورة على الشاشة الاولى لة مثل اغلب البرامج التى تعمل على نظام 16 بت اعزرونى لهذا السؤال حيث اننى مبتدأ فى لغة الاسمبلى
وفقكم الله
السلام عليكم,
يجب تحميل الصورة كمعطيات مباشرة إلى ذاكرة الشاشة والتي تبدأ في B000 أو B800 ويجب مرة أخرى التيقن من هذه الأرقام لأني ليست لدي ذاكرة جيدة للأرقام.
ولتسهيل الأمور من الأحسن أن نسجل الصورة لتكون لها نفس المواصفات مع مواصفات الشاشة حتى تظهر الصورة في مواصفاتها الأصلية بدون أن نزيد أي تغيير. مثلا إذا كنا سنستعمل الشاشة على شكل 640 480 و 16 بت فسنسجل الصورة التي نريدها بنفس المقاييس.
إلى اللقاء.
اشكرك اخى chik على ايضاحك هذا ودائما متميز كالعادة ولكن لو تدلنى على موقع اومثال بسيط يشرح لى هذة النقطة اكون شاكرا لك حيث اننى فى بداية البرمجة بلغة الاسمبلى شكرا
السلام عليكم,
سأحاول أن أكتب مثالا في هذا وأتمنى أن لا أنسى لأنه عندي عدة انشغالات بدأتها ولم أتممها بعد.
إلى اللقاء.
السلام عليكم,
سأعطي هنا مثال عن وضع صورة في نظام 16 بت وقد أرفقت في الملف المرفق البرنامج وصورة أستسمح عن عدم جماليتها كما أرفقت ملفان لنتعرف عن مختلف mode للشاشة وهو مأخوذ من ملف interrupt للسيد Ralph Brown وهنا اخترت المود 13 ليعطينا 320*200 ب 256 لون وهنا تكون ذاكرة الشاشة في A000 ويمكن أن نقوم بالتغييرات حسب الملف المرفق كما أرفقت ملف يتكلم عن كيفية ملف الصور من نوع BMP حتى نعرف أين تكون المعطيات الخاصة بالصورة ومعرفة طولها وغير ذلك.
كما يجب أن نعرف أن الصورة تكون مقلوبة في معطياتها وهنا يمكن أن نقوم بما يلي :
إما أن نقلب الصورة عند صنع الصورة وهذا سهل لأن كل برامج الصور تمكننا من ذلك أو نترك الصورة ونحملها في مكان ما في الذاكرة ونقوم بقلبها حين نحمل البايتات إلى ذاكرة الشاشة وأظن أن هذه طريقة شيء ما أطول.
الطريقة الثانية وهي التي ربما تستعمل أكثر وهي . بما أننا هنا لا يهمنا ملف الصورة بل معطيات الصورة بدون ترويسة يمكن أن نعكس الصورة ونأخذ منها المعطيات التي تهمنا فقط ونسجلها في ملف خاص - كثير من البرمجين يستعكلون ملفات من نوع BIN أو DAT ولكن يمكن أن نستعمل ما نريد ومن هنا يتم تحميل معطيات الصورة كمعطيات فقط بدون المعلومات الخاصة عن الصورة.
إلى اللقاء
اشكرك اشكرك اشكرك اخى chik على مساعدتك لى وساقوم بتجربة هذا الملف
ممكن توضح لى استخدام كل من الاكواد التالية فى البرنامج:
mov dx,436h
مافائدة وضع القيمة السابقة
*********************************************
mov cx,0fA00h
وكذلك هذة القيمة
**********************************************
انا حاولت كتييير انا اعرف فائدها ولكن ماوصلتش لحل مقنع لى ارجوا ان توضحها
لى لو سمحت اشكرك
اعتقد ان القيمة الموجودة فى mov dx,436h هى Bitmap Data ارجوا التصحيح اذا كان هناك خطأ
السلام عليكم,
كما توقعت فإن الرقم 436 هو فعلا بداية معطيات الصورة في الملف.
أما 0fA00h فهو بداية ذاكرة الشاشة عنما نكون في Mode الذي اخترناه. يعني كل ما نضعه مي هذه الذاكرة هو سيظهر لنا على الشاشة.
إلى اللقاء.
وعليك السلام ورحمة الله وبركاتة
اشكرك يااستاذ chick على توضيحك واتمنى لك التوفيق انت وجميع المشرفين
المتميزين فى هذا المنتدى البارع
هل من الممكن عكس الطريقة الثانية للحصول على الصورة مرة اخرى
((الطريقة الثانية وهي التي ربما تستعمل أكثر وهي . بما أننا هنا لا يهمنا ملف الصورة بل معطيات الصورة بدون ترويسة يمكن أن نعكس الصورة ونأخذ منها المعطيات التي تهمنا فقط ونسجلها في ملف خاص - كثير من البرمجين يستعكلون ملفات من نوع BIN أو DAT ولكن يمكن أن نستعمل ما نريد ومن هنا يتم تحميل معطيات الصورة كمعطيات فقط بدون المعلومات الخاصة عن الصورة )9))
ارجوا ان يكون هناك احد فهمني
طبع على الاقل عندي برنامج بينبش الصور من ملف بين واحد وانا اريده عن ينبش صور بيش اخر
فكيف اعرف من اين ياخذ العناوين وطريقة عمله
علما بان البرنامج 16 بت وليس 32بت
مع شكري لكم
السلام عليكم,
الطريقة الأفضل هي محاولة تتبع البرنامج بواسطة ديبوغر حتى تتمكن من معرفة الكود الذي يقوم بتحميل الصورة ومن هناك يمكن أن نتعرف على كامل المعطيات.
وإذا كنا فقط نهتم بنقل الصورة فالطريقة السهلة هي عندما تظهر الصورة على الشاشة ما علينا سوى مثلا أن ننقل الشاشة كاملة إلى برنامج للصور مثل Paint أو غيره ونخدم الصورة وسيبقى لنا ملف صورة BMP عادي أو أي شكل نريده.
إلى اللقاء.
اشكرك على مساعتي
ممكن برنامج ديبوغر فالقد حاولت اقراءه عبر olly فظهرت رسالة بان خممغ بيقراء ال32 بت والبرنامج الذي اريد ان اكشفه 16 بت
وهذفي مش الحصول على الصورة بال تغير الصورة في الملف بصورة اخرى لذا اريد ان اعرف بداية ونهاية عنوان الصورة لاضع الصورة الجديده في نفس الموقع
مع تحياتي لك
السلام عليكم,
فيما يخص الديبوغر لأنظمة 16 بت يمكنك استعمال الديبوغر الذي يأتي مع الوندوز ولكنه ضعيف شيء ما في مثل هذه الأعمال. وهنا يبقى في نظري سفتايس أحسن ديبوغر في هذا الأمر إلا أنه قد يجده البعض شيئا ما صعبا في تشغيله ولكن كل الأمور تبدو هكذا في الأول .
إلى اللقاء.
ممكن هذا البرنامج الذي تكلنت عنة ((( سفتايس ))))
واذا حددت بداية الصورة كيف اعرف معطياتها وعنوان نهاية الصورة
واذا حولت الملف الى اوامر اسمبلي فما الامر الذي استدل به على الصورة ومعطياتها
وشكرك من صميم قلبي على المساعده والاهتمام لموضوعي
السلام عليكم,
أتمنى أنني أكون مفهوما . فحين تكلمت عن برنامج الدبوغر لا أقصد أننا سنغير معطيات الصورة إلى كود ولكن سنحاول معرفة كود البرنامج الدي يحمل الصورة حتى نتعرف من أين وكيف يأخد المعطيات حتى يظهر لنا الصورة.
في الموضوع السابق : كيف نظهر صورة في نظام 16 بت قد أعطيت مثالا وفيه ملف يحتوي على ترويسة ملفات BMP وهدا يكفينا لمعرفة كل خصائص الصورة من طول المعطيات وطول وعرض الصورة والألوان وما إلى دلك.
فيما يخص برنامج سفتايس ففي المنتدى عدة روابط لهدا البرنامج وهنا يجب أن نحمل البرنامج حسب ما إدا كنا نشتغل في الوندوز 98 أو غيره . ويجب شيئ من الإحتياط في التثبيت إنه في غالب الأحيان مستعملوا XP و 2000 يشتكون من بعض المشاكل التي تعترضهم. كما يمكن أن نقوم بشيء من البحث في النت وغالبا ما نعثر على روابط التحميل.
إلى اللقاء.
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…