الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

File Compress ضغط الملفات

مغلق
بدأه C&DEL في 29 ديسمبر 2003 · 4 رد · 1,453 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و البركات

آسف جدا لغيابي الطويل ( بتعرفو الامتحانات ) ........

ذكرت سابقا أمر ضغط الملفات و ما الى ذلك و هذا الملف المرفق يحكي القصة التي ذكرتها سابقا ( أرجو مراجعة الموضوع )

حجم هذا الملف حوالي 64 كيلو بايت يحوي على ربع ساعة عرض سمعية بصرية و يعمل على محرك Direct3D السابع و هو مبني على VC++6 ... و يحوي العديد من الخواص الغريبة ..... لن أطيل الكلام سأدع المتعة لكم لتشاهدوها

أرجو ابداء الرأي حول هذه التقنية لأنني الآن أحاول دراسة طريقة جديدة لضغط الملفات بشكل عام

FR08V101.EXE

مدونتي

http://mbnoimi.net

#2

السلام عليكم ,,

أهلين أبو أحمد ,,

هذا الملف حجمه صغير فعلا ,, لكنه منطقي !!

هل تعلم ان كل ماأمامك يتم توليده ديناميكيا ,, الامور التي تؤثر على حجم الملف أمرين ,,

الاولى : مايدعى ب Mesh Files ,, وهي ملفات تحتوي على أبعاد وتفاصيل المجسمات أمثال القلعة وغيرها ,, وهي الاشياء التي تم تصميمها ب 3dMax مثلا أو Maya أو غيره ,,

الثاني : صور مجزئة صغيرة ,, تسمى Textures ,, يتم لف الجسم بها ليصبح الجسم وهو ال Mesh حقيقيا ,,ويمكن أن تسميها الجلد ,, وتوجد عملية مشابهة لها في ال Max تسمى Texturing ,,

الصور الصغيرة يتم اضافتها للمشروع Resource ,, وربما تضغط ,, أو في الغالب ثم بعد ذلك يفك ضغطها أثناء عمل البرنامج ,,

أما بالنسبة لتحرك المشهد ,, فهي الكميرا !! ,, هذه الكميرا تفعل أمورا غريبة فعلا ,, تحول لك المجسم الهامد الى فلم فديو بتأثيرات مذهلة ,,

لاأستطيع أن أفصل الان فلموضوع طويل ,, لكن أقول لك مرة أخرى أن هذا مذهل حقا ,,

Direct3D ,, يمكنه القيام بأمور غريبة ,,

وفي هذا الصدد كان لدي مشروع ,, برنامج رسم فكرته مذهلة جدا وكان يعتمد على ال Direct3D ,, لتمثيل الصور والحركة على الانترنت مباشرة ,, كما في ملفات الفلاش ,, لكن بعروض واضاءة واقعية ثلاثية الابعاد ,, بأحجام صغيرة جدا ,, لن تتجاوز 20 كيلوبايت !! ويمكن أن تقول أنني مجنون ,, لكن هذا البرنامج لو انتهى كما كنت أأمل فيمكنه ضرب الفلاش بالحديد وابعاده عن السوق تماما !!

لكن أوقفت المشروع لبعض المشاكل التي واجهت مرحلة التصميم ,, لكن سأعود اليه قريبا ,,

أخيرا ياأبو أحمد ممكن نتناقش في الموضوع وسأفصل لك أكثر في شرح هذا المثال لو أردت ,, :)

بالتوفيق ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

أخي هيثم .........

بشكل مختصر أنا أشتغل من فترة طويلة على 3D MAX حجم الملف مش طبيعي لأن الخرائط التي تم اكسائها للأجسام لا تتوافق مع هذا الحجم و كذلك لا تنسى ملف الصوت !!!! ألا يوجد له حجم أيضا !!!!!؟؟؟؟؟؟ و أرجو الانتباه أن حجم الملف 64 كيلوبايت يعني أي خامة ( و الأكيد الخامة المستخدمة للاكساء ليست أيقونة ) حجمها هكذا مع تطبيق حتى و لو كان ديناميكي ( يعني بعرف أنه ديناميكي ) و ملف صوت مع ملف mid بالمجموع يصبح حجمه بشكل طبيعي 64 كيلو

يا أخي لا تهون الأمر الموضوع ضخم و هذه شركة مختصة بضغط multimedia من DirectX أو wav عادي أو ........

مدونتي

http://mbnoimi.net

#4

السلام عليكم ,,

أهلين أبو أحمد ,, كيف الحال ,,

اقتباس
هذا الملف حجمه صغير فعلا ,, لكنه منطقي !!

أعتقد أن هذا السطر هو ما أغاظك :) ,,

عموما أنا قلت منطقي ,, لأنه قد تم فعلا !! ولاشيء مستحيل ,,

اليك بعض الافكار ,,

1) في المرة السابقة لم أتحدث عن الصوت ,, لأن أمره الأهون على الاطلاق !! لماذا ؟ لأن الصوت الناتج في الملف ليس wav ولا mp3 ولا حتى mid !! هو نوع آخر خاص بال Direct Music ,, بامتداد sgt.*** ,,

هذه الملفات يتم التلاعب بها بطرق كثيرة ,, وتعطي تحكما مذهلا ,, وحجمها خرافي ,, اليك المثال المرفق من أمثلة Direct Music ,, سيوضح لك أكثر ,, به عدة ملفات sgt ,, أكبرها حجمه 8 كيلوبايت ,, يمكن بتغييرات ديناميكية عليه أن جعل طوله أكثر من نصف ساعة ,, واذا أردت يوم كامل !! دون أن أزيد في حجمه أكثر من كيلوبايت واحد فقط ,,

ويوجد مثال آخر لشخص يشخر في النوم ,, حجمه 800 بايت وليس كيلوبايت !! شغله مع عمل Loop للعرض ,, وسترى العجب ,,

2) المجسمات ,, لايتم بنائها بال MAX ولابأي بأي برنامج آخر ثم تصديرها لملفات x.*** والتي تسمى X FILES التي يتعامل معها Direct3D في طور IR ,, وهي المكتبات المساعدة لل Direct3D ,,

هذه المجسمات تبنى باستخدام برنامجهم هم ,, حيث أنها تضع أماكن السموت فقط في ملفات غاية في البساطة ,, ومن احداثيات السموت Vertices ,, والتي لن تتعدى 3000 في أعقد الاشكال على الاطلاق في الملف ,, أو بالأصح لن تتعدى ال 500 ,, مارأيك !! هذه ال 500 يمكن تخزينها في 1.5 كيلوبايت ,, لكل مجسم مثلا ,,

توجد 7 مجسمات رئيسية بحجم 15 كيلوبايت على الأكثر ,, لاتغتر بهذه المجسمات ,, فهي تمثل أجسام مستوية ومسطحة ,, الا البعض منها ,, فهي في هذه الحال ستحتاج لعدد بسيط جدا من السموت والمضلعات ,,

لكن بالفعل انجاز صيغ ملفات جديدة كهذه لبرنامج منفصل أمر رائع فعلا وصعب ولاأنكر ,,

3) الصور ,, وأمرها هين أيضا لاحظ للجدران ,, الاكساء الذي بها ليس واضحا تماما ,, فيمكن أن تكسي جدار كامل كهذا بصورة لتتعدى 100x100 ,, وقد تزيد وقد تنقص ,,

الان صورة JPG 100x100 ,, كم حجمها !! افترض 200x200 ,, مثلا ,, لن تتجاوز الصورتين منها 1 كيلوبايت ,,

افرض أن حجم الصور النهائي 40 كيلوبايت ,, بعدد 50 صورة مثلا !! وأعتقد أنني قرأت في المثال نفسه أن الصور 80 ,,

عموما الصور في أقصى حالاتها لن تتجاوز ال 40 كيلوبايت ,, وهي الجزء الاكبر من الحجم كما تلاحظ,,

4) الاجسام المتحركة ,, أمثال الاشكال الهلامية التي تتحرك حركة موجية غريبة !! هذه التأثيرات توضع في ملفات تدعى vsh.*** ,, أحجامها لاتتعدى ال 2 كيلوبايت مطلقا ,, تشكل الحركة المطلوبة ,, رأيت بها بعض الامثلة ,, لكني لاأنكر أنني لم أفهمها ,, منها مثلا لدلفين يتحرك حركة موجية طبيعية ,,

المهم الان في النقاط 1 و 2 و4 الملفات الناتجة هي ملفات نصية ,, يعني يمكن ضغطها بأي خوزارزمية ضغط عالية النوعية أمثال LZW ,, أو حتى بصيغة قريبة من صيغة ال WinRar مثلا ,,

وسينقص حجمها الى 1 / 7 من حجمها الاصلي !! وتوضع ك Resource في البرنامج ,, ويتم فك ضغطها بخوارزمية بسيطة لاتتعدى ال ا كيلوبايت مضمنة مع الملف التنفيذي ,,

لكن المشكلة ستكون بالنسبة لصور ال Jpg هذا اذا كانت Jpg بالفعل ,, ولم يقومو بصنع معيار آخر أيضا ,, حيث أن ملفات ال Jpg ضغطها لايوفر شيئا مطلقا ,, فستكون كما هي بال 40 كيلو مثلا ,,

احداثيات الحركة الثابتة والديناميكية للكاميرا وهي معلومات نصية فقط لن يتجاوز ال 3 كيلوبايت أيضا مثلا ,,

أخيرا الملف التنفيذي الناتج من كل العملية سيضغط أيضا !! حيث أنا كما أعلم أصغر حجم لملف تنفيذ صادر من مصرف السي++ الخاص بمايكروسوفت ينتج 28 كيلوبايت للملف التنفيذي برأس PE شرعي ,,

أما الملفات الخاصة بالدوت نت ذات رأس CLR فحجمها لايتجاوز ال 7 كيلوبايت !!

عموما نفرض أن ملف ال exe 30 كيلوبايت ,, عندها عندما يضغط لن يتجاوز حجمه 3 كيلوبايت !! لأن ملف ال EXE يعتبر كمعلومات نصية أيضا ,, ويمكن أن تجرب هذا بعد قليل ,, اضغط أي ملف EXE ببرنامج WinRar أوحتى WinZip ,,ولاحظ الفرق بين الملف قبل وبعد الضغط ! ,,

الان 3 كيلو للتنفيذي + 40 كيلوبايت للصور + الباقي بعد ماضغط في الاول حيث لن يضغط مرة أخرى مثلا 10 كيلوبايت "مع أنها كثيرة جدا " ,,

الناتج سيعطي 53 كيلوبايت ,,

هذه ال 53 كيلوبايت غير صالحة للتنفيذ !! لأن ملف ال EXE بها مضغوط ولن يعمل مباشرة ,, فما الحل ؟

الحل هو أن ننشيء ملف EXE جديد ببرنامج كالاسمبلر مثلا يعطي أحجام صغيرة جدا لاتتجاز الكيلوبايتين ,, مع خوارزمية ضغط لفك ضغط كل هذه الامور من أولها لآخرها ,, وتنفيذ الملف الذي تم فك ضغطه ! كأمثال ال Self-Extractor ,, وسيكون حجمه مثلا 10 كيلوبايت ,,

المجموع الكلي 63 كيلوبايت !! بقي كيلوبايت واحد سيكون به الكلام الكثير الذي وضحته الشركة في المثال !! :)

تراني تحدثت كثيرا ,, وفي النهاية أقول ,, أن مشروعهم مبدع جدا واتقانه صعب لأقصى الحدود ,, وفعلا موهوب من اخترع هذه الفكرة الجهنمية ,,

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

بارك الله فيكم ,,

تم تعديل هذه المشاركة بواسطة HGB في 31 ديسمبر 2003 في 04:55

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#5

اليك المثال ,,

انسخ المجلد media الى الموقع التالي :

C:\DXSDK\Samples

بحيث تكون في النهاية ,,

C:\DXSDK\Samples\media

بالطبع ستنشيء مجلدات DXSDK و samples فارغة ,, فقط لتسكت المثال ليعمل ,,

وستجد الملف التنفيذي والمجلد المطلوب media ,, مع الملف المرفق ,,

بالتوفيق ,,

Music.rar

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

مواضيع مشابهة