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

إستخدام صور Png, TIF

بدأه MMA_EG_Cairo في 27 أغسطس 2012 · 21 رد · 3,156 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

فيجوال بيزيك 6.0 لا يقبل هذا النوع من الإمتدادات لكائنات الصور !!!

ولكن من أهم مميزات هذه الإمتدادات الضغط لدرجة قوية جداً وبنفس وضوح ملفات bmp تماماً لكن مع الضغط الكامل للصورة !!!

فلدي صورة bmp حجمها 2.5 ميجا تقريباً ، حينما قمت بتحويلها الي ملف tif كانت النتيجة ملف حجمة 98 كيلو بايت

وعندما قمت بتحويالها الي ملف png كانت النتيجة ملف حجمة 29 كيلو بايت

بالتأكيد فرق شاسع ومطلوب في حالة لو كان برامجنا تحتاج الي مئات الصور !!!

المطلوب بالضبط

كيف يمكنني قراءة محتوي ملف الصورة png وتحويلها الي ملف bmp برمجياً ؟؟؟

أرجو المساعدة من حضراتكم

شكراً لكم مقدماً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#3

أستاذ bahbah ، لكل الشكر والتقدير والإحترام

وشكر خاص لمحاولة تقديم مساعداتك ليا بحب وبإحترام

فجزاك الله كل خير

------------------------------------------------------------

مبدئياً أنا بحثت كتير جداً فعلاً ولم أجد أمامي سوي :

VB Dot Net

C# Dot Net

PHP

لكن فيجوال 6.0 لم أجده علي الإطلاق

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

فأرجو إن كان هناك فكرة محدده أرجو إرفاقها

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#4

ألم تتطلع على الرابط .. لا أعلم إن نجح أم لا ..

ولكن يجب أن تستخدم مكتبات GDI+ كما أعتقد .. وهذين مثالين الأول بسيط وسلس ..

أما الثاني فهو يحتوي على كثير من الملفات .. وتؤدي نفس الغرض ولكنه يقوم بعرض إذا ما كانت الصورة

لها خلفية غير مرئية فهو يظهر المربعات مثل الفوتوشوب ..

ولك الخيار أنت ..

تحياتي :happy:

المثال الثاني ..

Using_Ping_In_VB.ZIP

LaVolpe_3220916811232007.zip

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5

الله يفتح عليك

صراحة ربنا يا ريتني كنت سألت هذا السؤال قبل الدخول في معركة أستخدام الـ Zipper !!!!

وقبل الدخول في مثل هذه المسارات :

www.arabteam2000-forum.com/index.php?showtopic=114726&st=0&p=580363&hl=tiff&fromsearch=1entry580363

هيسهل عليا كتير جداً بعون الله

-----------------------------------------------------------

أنا هبلغ حضرتك بالحقيقة المرة

أنا لدي مجموعة صور تفوق الـ 7000 صورة

متوسط كل صورة تقريباً 2 ميجا بايت من نوع bmp

طبعاً حضرتك عارف أن النوع ده أفضل نوع من حيث الدقة

لكنه غير مضغوط zipper

ولكن الملف الذي يطابقة هو ملف png لكنه مضغوط لدرجة متدنية جداً

فالـ 7000 صورة لو ضربناهم في 2 ميجا بايت سيكون النتيجة 14000 ميجا بايت تقريباً

لو قسمناهم علي 1024 ستكون النتيجة 13.5 جيجا تقريباً

لكن عندما أستخدمت ملف الـ Zipper حول كل هذه الملفات الي 210 ميجا تقريباً بعد الضغط

لكن المشكلة في ضغط وفك ضغط الملف ، وعملية الضغط وفك الضغط بتتم عن طريق قيام ملف الـ Zipper

بفك ضغط نفسة في فولدر الـ Temp وهذا يصنع لي مشاكل ضخمة وكل فترة يتطلب من المستخدم عمل

Scan Disk أو الدخول الي ملف التيمب وعمل Remove ... أو حتي الدخول في معركة تنظيف ملف الـ Temp كل

مرة أفك فيها ملف من تلك ملفات الصور

فبعيداً عن إن كانت شاقة أو غير شاقة ، لكن فكرة تحويل الملف الي ملف png هيكون أفضل بكثييييييير جداً

شكراً لحضرتك

جزاك الله كل خير

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#6

هههههه :lol: الحياة تجارب أخي الكريم .. لو لم نقم بالبحث والسؤال والإكتشاف .. لما ظهرت لنا ..

عمليات سهلة وهذه المسألة توضح ما كتبته في مدونتي (البرمجة سر أم فن) ..

ولكن هل إنتهى سؤالك ؟؟

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#7

صح أستاذي الكريم ، الحياة تجارب ، وأنا الحمد لله أعتمد علي مثل هذه الفكرة

وحينما أصنع شيء أكتشف أن مع التجارب وزيادة الخبرة شيء أفضل منه فنياً

ولكنني وبحمد الله بحاول قدر المستطاع تسهيل العملية حتي حينما أرغب في التغيير يكون الأمر سهل

ودائماً وأبداً أستخدم سياسة فصل الأفكار الكبيرة في برامج خارجية

dll Or ocx

لذلك الأمر سهل لدي بحمد الله

لكن الوقت الخانق وحده أحياناً يجعلني أضطر لطرح سؤالي في المنتدي الكريم

فأرجو مساعدتي لتسهيل الأمر عليا حتي لا أبحث أكثر

وأحلف لك أنه ضغط شغل مش أكثر ، وإلا كنت ريحتك مني والله !!!

أنا دلوقتي حملت ملف الـ png ، علي كائن Picture ... طبعاً لو حفظتة بالطريقة التقليدية

SavePicture هيتحول الي نفس الصيغة القديمة bmp !!!

سؤالي كالتالي :

التعديل علي المثال الأول السلس لحفظ الصورة في المسار المناسب خارج البرنامج بصيغة png

أرجو ألا أكون أتعبت حضرتك

شكراً مرة أخري

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#8

الحمدلله .. سأقوم بالتعديل على الملف .. وإن شاء الله أصل للنتيجة ..

تحياتي :happy:

وأصلاً أنت ما أزعجتني أصلاً أنا عندي وقت فسيح ما أعمل أي حاجة !!

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#9

أشكرك كثيراً

هو فعلاً أنا لاقيت الفكرة موجودة في المثال الثاني في قائمة Other Options أمر عبارة عن

Save As PNG (Using GDI+)

ولكن أنا نفسي بس أستخلص الأمر وحدة مستقلاً بعيداً عن كل هذه الكلاسات الكثيفة !!!

لأن الكلاسات تتضمن العديد من المهام الأخري

وأنا أريد مهمه حفظ الصورة في صورة ملف png فقط لا غير

شكراً لحضرتك مرة أخري

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#10

لماذا لا تقوم بإستعمال المكتبة التي وضعت الرابط عنها ..

وهذه كيفية الإستعمال ولكن لا أعلم لماذا يقول أن المكتبة غير موجودة ؟؟

جربها ..

test.zip

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#11

لأني مش عاوز أستخدم مكتبات خارجية بعيده عن المكتبات المتاحة في كلاً من :

1- نظام التشغيل OS سواء XP القديم أو الحديث

2- برامجي الخاصة المصممة بيدي فقط لا غير

فتوابع الـ API المتاحة في نظام التشغيل بيكون أفضل

ده غير أني ببقي عارف أنا ماشي إزاي

ومضمنش موضوع المكتبات الخارجية ممكن تعمل معايا إية في المستقبل

أرجو أن أكون أوضحت لحضرتك الفكرة جيداً

----------------------------------------------------------------------------------------------------

ده غير أنه عندي فعلاً عامل مشاكل وبيقول أن المكتبة غير موجوده

سواء نسختها داخل C:\Windows\System32 ، أو حتي حطتها بجوار الملف التنفيذي أو بجوار برنامج !!!

ولو أشتغل يشتغل غلط ويعمل حاجات غريبة !!!

لا لا لا يفتح الله !!!

المثال الثاني أللي حضرتك أرسلته ليا LaVolpe_3220916811232007.zip ، يعمل به الفكرة بنجاح

ولكن يتطلب مني الأمر التجميع فقط لا غير !!!

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 28 أغسطس 2012 في 15:54

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#12

براحتك أخي الكريم .. أنا فقط أحاول المساعدة ..

ولكن ما رأيك بهذا المثال لا أظن أنه يعمل بمكتبات خارجية فقط يستعمل GDI+ وهو فيه خصائص كثيرة ..

بالإضافة أن الكواد قليلة وبسيطة وأنا كنت أظن تقريباً وأصل إلى النتيجة ولكنه يعتمد على ملفات المصادر ..

تحياتي :happy:

GDIplus Classes.zip

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#13

أشكرك صديقي

لكن كل أللي أنا عايزة مثال زي أول مثال ولكن علي حفظ الصورة في صورة png فقط لا غير !!!

فالمثال الأول كل وظيفتة فتح صورة png ، وهو في ملف Using_Ping_In_VB.ZIP

أنا عاوز مثال بسيط مثلة يتضمن حفظ الصورة فقط لا غير الي صيغة png

فلا أريد أن أتعب حضرتك أكثر من ذلك

شكراً مجدداً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#14

السلام عليكم...

ما رأيك بحل سهل! و هو تحويل الـ Bitmap إلى PNG أو JPG أو GIF بأسطر قليلة من الكود؟

في المرفقات ملف DLL باسم ChangeBmp.dll يحتوي على ثلاث دوال للتحويل من صيغة Bmp إلى إحدى الصيغ المذكورة أعلاه. أعتقد أني قد وضعت في المنتدى من قبل نسخة من هذا الملف، لكنها كانت فقط للتحويل إلى JPG و GIF. و قد أضفت إليها البارحة دالة التحويل إلى PNG.

للأسف أن الملف مكتوب بلغة دلفي (النسخة 7) و ذلك لسهولة هذه التحويلات في دلفي (الكود المصدر في حدود 130 سطراً، و الكثير منه لا علاقة له بعملية التحويل نفسها، و إنما لأمور مثل التأكد من وجود الملف المصدر و صحة المسار الهدف، ... إلخ).

الملف ChangeBmp.dll ليس ملف ActiveX DLL و إنما هو مكتبة DLL قياسية، و بالتالي فهو لا يحتاج إلى تسجيل في سجل النظام (بواسطة regsvr32) و إنما يتم وضعه في المجلد System32 و استدعاء الدوال الموجودة به عن طريق التصريحات.

إذن الخطوات كالتالي:

1. انسخ الملف ChangeBmp.dll إلى المجلد System32 التابع لـ Windows (عند إعداد حزمة تركيب أو تنصيب Setup Package يمكنك جعل معالج التركيب Setup Wizard يضع ذلك الملف تلقائياً في المجلد System32).

2. في قسم التصريحات العام للـ Form أو في Module ضع التصريحات التالية (إذا وضعتها في Module فربما يلزم تغيير التصريحات من Private إلى Public):

Private Declare Function BitmapToJpg Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal JpgName As String) As Long
Private Declare Function BitmapToGif Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal GifName As String) As Long
Private Declare Function BitmapToPng Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal PngName As String) As Long

* واضح من أسماء الدوال ما تقوم به: BitmapToJpg للتحويل من BMP إلى JPG، و الدالة BitmapToGif للتحويل من BMP إلى GIF، و الدالة BitmapToPng للتحويل من BMP إلى PNG.

* البارامترات:

= BmpFile: المسار الكامل لملف الصورة النقطية (الذي امتداده bmp) المراد تحويله.

= TargetFolder: المسار الكامل للمجلد الذي ستوضع فيه الصورة المحولة الناتجة.

= JpgName أو GifName أو PngName: الاسم الأساسي للصورة المحولة الناتجة (اسم الملف دون امتداد (مثلاً NewImage و ليس NewImage.png) لأن الدالة ستضيف الامتداد المناسب للملف).

* القيمة المعادة:

إذا نجحت الدالة المستخدمة في تحويل الصورة و إنشاء النسخة المطلوبة فإنها تعيد (-1) أي True و إلا فإنها تعيد (0) أي False.

3. في المكان المناسب (زر أو أمر قائمة) قم باستدعاء الدالة المناسبة للتحويل إلى النوع الذي تريده، مثلاً:

    If BitmapToJpg("MyBmpImage.bmp", "D:\TestFolder", "MyJpgImage") = 0 Then
        MsgBox "Change to JPG error"
    Else
        MsgBox "JPG image creared"
    End If

*** يوجد في المرفقات أيضاً ملف HTML يحتوي على شرح قريب من الشرح المذكور هنا.

المرفقات:

ChangeBmpDLL.rar

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#15

شكراً لحضرتك ، بس أنا كنت عاوز الموضوع يتم برمجياً بإستخدام توابع API من خلال الفيجوال 6.0 مباشرتاً دون إستخدام مكتبات خارجية جاهزة حتي أكون فاهم ماذا أفعل بالضبط برمجياً

شكراً لك مجدداً

جزاك الله كل خير

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#16

ممكن أسأل سؤال ؟؟؟

كيف يمكنني صناعة مكتبة خاصة بلغة VB6.0 كي أكون قادراً علي التعامل معها بصورة API وليس الربط المباشر عن طريق CreateObject ؟؟؟

Private Declare Function LoadData Lib "DataAll.dll" (ByVal vName As String, _
                ByVal vSex As Integer, ByVal vBDate As Date) As Long

شكراً

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 29 أغسطس 2012 في 13:10

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#17

السلام عليكم...

حسب علمي - و أنا أعمل على VB6 منذ 15 عاماً، و اله أعلم على كل حال - فإن VB6 لا تدعم إنشاء ملفات DLL قياسية و لا مكتبات موارد (Resource DLLs). فقط ملفات ActiveX DLLs التي تحتوي على أصناف (Classes) و التي يجب تسجيلها في النظام و الوصول إليها باستخدام CreateObject أو إضافتها كمراجع (References) إلى المشروع.

بالنسبة إلى النقطة الأخرى فيبدو أنك مثلي! أحب أحياناً أن أصنع الأشياء من الصفر (From scratch)! لكن ذلك لا يمنعنا من الاستفادة من أكواد أو حتى أدوات صنعها غيرنا، خاصة إذا كان الأمر فيه كثير من التعقيد - فلا حاجة لإعادة اختراع العجلة!

و على أية حال فنحن كثيراً ما نفعل ذلك. عندما نستعمل دوال تابعة للنظام Windows موجود في مكتبات مثل kernel32 أو user32 أو +gdi أو غيرها، فهي دوال برمجها و كتبها غيرنا، و حتى عندما نستعمل وظائف VB نفسها. عندما مثلاً نستعمل الوظيفة Line لرسم خط فنحن نستعمل خوارزمية و كود كتبه شخص آخر ما، و لا داعي - من ناحية عملية - أن أعيد أنا كتابة و برمجة الخوارزمية لأستعملها في برامجي المكتوبة بلغة VB - طبعاً هذا لا يمنع من الاطلاع عليها و تجربتها من باب التعلم و المعرفة بالشيء.

كنت أتمنى أن يكون لدي كود مشابه بلغة VB6 لأرفقه هنا، لكن للأسف - و كما قلت - الكود مكتوب بلغة Delphi، و هو بدوره معتمد على عدد من الوحدات البرمجية المتكونة من مئات الأسطر من الكود - و التي لم أكتبها أنا.

أرجو لك التوفيق و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#18

شكراً لحضرتك ، بس كنت عاوز أخبر حضرتك بشيء مهم جداً

فعلاً فيجوال 6.0 مبنية علي برامج موجوده بالفعل في صيغة مكتبات خارجية يتم إستخدامها داخل فيجوال 6 تدعي APIs

وفيجوال 6 مبني عليها كلياً تقريباً :haha:

ولكن الفرق هنا أن فيجوال 6.0 قوي جداً وسهل الإستخدام في إتجاهات محددة مثل مجال نظم المعلومات التي تعتمد كلياً علي منهجية قواعد البيانات وجزئياً منهجية الملفات ... هنا يأتي قوة فيجوال 6.0 !!!

ولكن لا يعني ذلك أن فيجوال 6.0 تصمم برامج قوية أخري في إتجاهات كثيرة ، أولها الـ Applications التي تعتمد علي نظام النوافذ ... سهلة الرسم وسلهة الإدارة أكثر من C++ مثلاً ... فأنا أعلم شركة برمجة تقوم بتصميم برامج خدمات عامة مثل برامج السيكيوريتي وبرامج الميديا وبرامج أخري كثيرة بنائاً علي لغة C++ ... فتقوم ببناء مكتبات dll وأدوات ocx بها كي تكون برامج قوية ... أما مشكلة الـ C هي النوافذ الغير سلهة بالمرة ... فيعتمدون علي فيجوال 6.0 !!!

C++

And

VB 6.0

برامج خدمات عامة في قمة الروعة !!!

ولكن VB6 وحده يقوم بصناعة Application Database في قمة قمة الروعة والإحتراف

-------------------------------------------------

علي العموم أعتقد أن هناك طريقة لحل هذه المشكلة لكنني لم أتذكرها !!!

سأبحث وعندما أجد الحل سأدرجه للإفادة بعون الله

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#19

أنظر الي الرابط التالي !!!

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=54190&lngWId=1

هو به الفكرة لكن للأسف لا أملك وقت لفهمها

أنظر إليها وحاول أن تعرفها وتخبرني بها

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#20
najy_zl كتب:

السلام عليكم...

ما رأيك بحل سهل! و هو تحويل الـ Bitmap إلى PNG أو JPG أو GIF بأسطر قليلة من الكود؟

في المرفقات ملف DLL باسم ChangeBmp.dll يحتوي على ثلاث دوال للتحويل من صيغة Bmp إلى إحدى الصيغ المذكورة أعلاه. أعتقد أني قد وضعت في المنتدى من قبل نسخة من هذا الملف، لكنها كانت فقط للتحويل إلى JPG و GIF. و قد أضفت إليها البارحة دالة التحويل إلى PNG.

للأسف أن الملف مكتوب بلغة دلفي (النسخة 7) و ذلك لسهولة هذه التحويلات في دلفي (الكود المصدر في حدود 130 سطراً، و الكثير منه لا علاقة له بعملية التحويل نفسها، و إنما لأمور مثل التأكد من وجود الملف المصدر و صحة المسار الهدف، ... إلخ).

الملف ChangeBmp.dll ليس ملف ActiveX DLL و إنما هو مكتبة DLL قياسية، و بالتالي فهو لا يحتاج إلى تسجيل في سجل النظام (بواسطة regsvr32) و إنما يتم وضعه في المجلد System32 و استدعاء الدوال الموجودة به عن طريق التصريحات.

إذن الخطوات كالتالي:

1. انسخ الملف ChangeBmp.dll إلى المجلد System32 التابع لـ Windows (عند إعداد حزمة تركيب أو تنصيب Setup Package يمكنك جعل معالج التركيب Setup Wizard يضع ذلك الملف تلقائياً في المجلد System32).

2. في قسم التصريحات العام للـ Form أو في Module ضع التصريحات التالية (إذا وضعتها في Module فربما يلزم تغيير التصريحات من Private إلى Public):

Private Declare Function BitmapToJpg Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal JpgName As String) As Long
Private Declare Function BitmapToGif Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal GifName As String) As Long
Private Declare Function BitmapToPng Lib "ChangeBmp.dll" (ByVal BmpFile As String, ByVal TargetFolder As String, ByVal PngName As String) As Long

* واضح من أسماء الدوال ما تقوم به: BitmapToJpg للتحويل من BMP إلى JPG، و الدالة BitmapToGif للتحويل من BMP إلى GIF، و الدالة BitmapToPng للتحويل من BMP إلى PNG.

* البارامترات:

= BmpFile: المسار الكامل لملف الصورة النقطية (الذي امتداده bmp) المراد تحويله.

= TargetFolder: المسار الكامل للمجلد الذي ستوضع فيه الصورة المحولة الناتجة.

= JpgName أو GifName أو PngName: الاسم الأساسي للصورة المحولة الناتجة (اسم الملف دون امتداد (مثلاً NewImage و ليس NewImage.png) لأن الدالة ستضيف الامتداد المناسب للملف).

* القيمة المعادة:

إذا نجحت الدالة المستخدمة في تحويل الصورة و إنشاء النسخة المطلوبة فإنها تعيد (-1) أي True و إلا فإنها تعيد (0) أي False.

3. في المكان المناسب (زر أو أمر قائمة) قم باستدعاء الدالة المناسبة للتحويل إلى النوع الذي تريده، مثلاً:

    If BitmapToJpg("MyBmpImage.bmp", "D:\TestFolder", "MyJpgImage") = 0 Then
        MsgBox "Change to JPG error"
    Else
        MsgBox "JPG image creared"
    End If

*** يوجد في المرفقات أيضاً ملف HTML يحتوي على شرح قريب من الشرح المذكور هنا.

المرفقات:

ChangeBmpDLL.rar

نرجو الاستفادة و السلام.

ربي يسعدك حبيبي

مثال بسيط لو سمحت على استخدامها

#21

مثال بسيط لو سمحت على استخدامها

#22

حبيب قلبي ،،، المثال موجود أمامك

فقط عليك بنسخ الملف في مجلد System الموجود بنظام التشغيل

بالتوفيق

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…