تقييم الموضوع :
  • 2 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
شرح خوارزميات معالجة الصور (من دروس الاستاذ فوزي برزنجي)
#1
أولاً: شرح خوارزمية تحويل الصورة الملونة الى صورة ذات تدرج رمادي

أي صورة معروضة على الشاشة تتكون من عدة الآف من النقاط الضوئية تعرف بالبكسلات،

Any displayed image on the screen is made up of many thousands of tiny optical dots known as pixels

عدد هذه النقاط يعتمد على:
1- حجم الصورة Size of image .

كلما كان حجم الصورة أقل كان عدد العناصر أقل، والعكس بالعكس صحيح أيضاً.

2- درجة وضوح الصورة والدقة اللونية لها Resolution.

كلما كانت الدقة عالية كانت الحاجة الى عناصر اكثر، وبالتأكيد كثرة عناصر الصورة يعطي الصورة دقة وجمالية ورونق اكثر.

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

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

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

بالتأكيد ستقول أن حجم الصورة يتناسب طردياً مع دقة وتركيز الصورة، وهذا صحيح مائة بالمائة.
لذا إذا ما اردنا تفكيك الصورة، سنقول:

1- نفكك الصورة الى بكسلاتها، ونقرأ الصورة بكسل بكسل.

انظر كود تحويل الصورة كيف أني قرأت الصورة بكسل بكسل:


PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

كود قراءة البكسل هو Getpixel ستجده في النقطة التالية، كذلك من الصفر الى ارتفاع الصورة ومن الصفر الى عرضها، سنقوم بعملية مسح لكل بكسلات الصورة.

2- ثم سأفكك كل بكسل الى مكوناته الرئيسة، وأحتفظ بقيمة كل مكون في موقع خزني:


PHP كود :
red = (your image ).GetPixel(ji).R
green 
= (your image ).GetPixel(ji).G
blue 
=(your image ).GetPixel(ji).

3- خوارزمية تحويل الصورة الملونة الى صورة ذات تدرج رمادي هي في حساب المعدل اللوني، ثم رسم البكسلات من جديد ولكن بالإعتماد على المعدل اللوني بدل قيم المكونات الثلاث.



PHP كود :
avg = (red green blue) / 3
(your image ).SetPixel(jiColor.FromArgb(avgavgavg 
))
كود إعادة رسم البكسلات هو SetPixel، وسحر التحويل الى صورة تدرج رمادي هو في تكرار قيمة المعدل في كل من مكونات الصورة الثلاث.


بقيت ملاحظتان:

أ‌- أنا في كود البرنامج كتبت With img ، لأتخلص من تكرار كلمة your image في كل مرة، وهذا أصلاً ليس له علاقة ولا يقرب للخوارزمية لا من قريب ولا من بعيد.

ب‌- هنالك خوارزمية أخرى لا تعتمد على المعدل بقدر إعتمادها على تكرار قيمة من قيم المكونات الثلاث للعنصر ثلاث مرات، مثل:



PHP كود :
(your image ).SetPixel(jiColor.FromArgb(redredred)) 

أو



PHP كود :
(your image ).SetPixel(jiColor.FromArgb(greengreengreen)) 

أو تكرار اللون الأزرق، لكن طريقة المعدل هي الأفضل والأكثر دقة من غيرها.


أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس الثاني سيكون تحويل الصورة الى صورة ثنائية.




ثانياً: شرح خوارزمية تحويل الصورة الملونة الى صورة ثنائية


وهي أبسط أنواع الصور, وتأخذ قيمتين فقط للألوان, وهما اللون الأسود واللون الأبيض.

وهذا النوع من الصور له تطبيقات كثيرة في رؤية الحاسوب, كأن تكون المعلومات المطلوبة للشكل العام ( طبياً صور أشعةْX دائماً تكون ثنائية ), أو الحدود الخارجية للجسم وكذلك لتحديد مكان الجسم وإدراكه من قبل الإنسان الآلي مثلاً، ( وفي التصوير الليلي غالباً ما يكون اللون الأخضر مع الأسود) أو التحقق من تشوهات الأجسام المصنوعة ( في المصانع تكون الحاجة الى الصور الثنائية في معرفة الشكل الخارجي للتصميم ومعرفة هل أن المنتج لا يطابق التصميم أو المواصفات المطلوبة), وغيرها من التطبيقات الملائمة لها.

ويمكن الحصول على الصور الثنائية من الصور الملونة أو من الصور ذات التدرج الرمادي بالإعتماد على عملية التعتيب Threshold Operation, وهي تحديد قيمة معينة لشرط العتبة, تتحول فيها الألوان الأعلى قيمة منها الى اللون الأبيض, والألوان الأدنى الى اللون الأسود ( أصلاً كلمة عتبة جاءت من الخشبة أو الحديدة التي نجدها في أرضية باب البيت أو الغرفة، فإذا تجاوزتها دخلت الغرفة وبالعكس فأنت خارجها ).

كود البرنامج مع الشرح:

1- نفكك الصورة الى بكسلاتها، ونقرأ الصورة بكسل بكسل.



PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

2- ثم سأفكك كل بكسل الى عناصره الرئيسة، وأحتفظ بقيمة كل مكون في معامل خزني:



PHP كود :
red = (your image ).GetPixel(ji).R
green 
= (your image ).GetPixel(ji).G
blue 
=(your image ).GetPixel(ji).

3- كذلك سأحسب المعدل اللوني لكل بكسلات الصورة، بإمكاني تحديد شرط العتبة عشوائياً مثلاً ( بما أن الحد الأعلى للون البكسل الأبيض يقارب 16 مليون والأدنى صفر، يمكنني أن أقول أن شرط العتبة هو 6 ملايين أو 7 ملايين أو 8 مثلاً ) لكن هذه الطريقة غير ناجحة لإحتمالات أن تكون الصورة ليلية، أو بالعكس في وضح النهار، وهنا يجب أن تعتمد العتبة ( أنا أسميتها thrshold ) على المعدل اللوني للصورة.

4- خوارزمية تحويل الصورة الملونة الى صورة ثنائية هي في حساب المعدل اللوني، فإن كان البكسل أكبر من معدل الصورة اللوني سنحوله الى أبيض، والعكس يتم تحويله الى الأسود، ثم رسم البكسلات من جديد ولكن بالإعتماد على القيمتين الناتجتين من عملية التعتيب Thresholding.



PHP كود :
If (red green blue) < (thrsholdThen
                 bmap
.SetPixel (jiColor.FromArgb(000))
Else : 
bmap.SetPixel (jiColor.FromArgb(255255255))
 
       End If 

لاحظ رسم البكسلات من جديد، اللون الأبيض كتبته FromArgb (255,255,255) بينما الأسود كتبته FromArgb (0,0,0).

تبقى ملاحظة واحدة وهي أني قسمت شرط العتبة على 4، حوال أن تجرب انت بدون التقسيم، أو أن تقسمه على3 أو 5 أو 6 لتحصل على أفضل النتائج.

**** لي رجاء يبقى، حاول أن تغير قيم FromArgb (0,0,0,) الى مثلاً FromArgb (50,50,50,) ولاحظ كيف سيخف اللون الأسود الى رصاصي غامق.

**** أو أن تبدل الأبيض بالأسود والأسود بالأخصر FromArgb (0,255,0,) وانظر الى النتائج.

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس الثالث سيكون تحويل الصورة الى Negative.




ثالثاً: شرح خوارزمية تحويل الصورة الى الـ Negative


لو سألتك ما هو عكس اللون الأسود فستجيبني أنه الأبيض، وما هو عكس اللون الأسود فستقول الأبيض، وما هو عكس اللون الأزرق، ستتأخر وسأجيبك قبل أن تبدو عليك سمات الخجل أنه الأصفر.
إذا العكس هو المكمّل اللوني، يعني لو جمعت قيمة اللونين معاً ( الأصل والعكس ) فسينتج اللون الأبيض ( أعلى الألوان قيمة )، لاحظ معي هذه المعادلة:

أبيض - اللون الأصلي = اللون العكس.

لو طبقتها على الأبيض أو الأسود ستحصل على ما قلته في بداية كلامي هنا.

أبيض – أبيض = أسود.
أبيض – أسود = أبيض.
أبيض – أزرق = أصفر.
أبيض – أصفر = أزرق.

من هذا المنطلق سأستخرج فكرة ( خوارزمية ) العكس، وهي أن أستخرج القيمة اللونية للبكسل، ثم أطرحها من اللون الأبيض.

وبإمكاني أيضاً أن أستخرج المكونات الثلاث لكل بكسل، وأطرحها من 255 وهي القيمة الأعلى لكل مكون ( أعلى قيمة للبايت = 255).

1- نفكك الصورة الى بكسلاتها، ونقرأ الصورة بكسل بكسل.



PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

2- ثم سأفكك كل بكسل الى عناصره الرئيسة، وأحتفظ بقيمة كل مكون في معامل خزني:



PHP كود :
red = (your image ).GetPixel(ji).R
green 
= (your image ).GetPixel(ji).G
blue 
=(your image ).GetPixel(ji).

3- سأستبدل القيمة المخزونة في ال red الى 255 – red، وكذلك للمكون الأخضر والأزرق.



PHP كود :
red 255 – red
If red 0 Then red 

الخطوة الإخيرة إحترازية، لكيلا تكون قيمة المكون سالبة.

وبالتأكيد إعادة رسم البكسلات على الصورة من جديد بعد المعالجة.

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس الرابع سيكون زيادة أو نقصان إضاءة الصورة.



رابعاً: شرح خوارزمية تغيير إضاءة الصورة

تكملة لما شرحته في الخوارزميات الثلاث الأولى،

اليوم سنحاول تغيير ( زيادة أو نقصان ) إضاءة الصورة،

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


مما سبق يتوضح مبدأ أن البياض يزاد بإزدياد القيمة اللونية لأي بكسل وبالتالي نزداد إضاءة الصورة ككل، كذلك السواد يزداد كلما قللنا القيمة اللونية له، مما يؤدي الى تقليل مستوى الإضاءة.


إذاً توضحت فكرة زيادة او تقليل مستوى الإضاءة، نزيد او نقلل القيمة اللونية فقط، ولديك طريقتان:
أ‌- أن تزيد او تقلل من القيمة اللونية للبكسل مباشرة.
ب‌- أن تزيد أو تقلل من قيم المكونات الثلاث للبكسل.


أنا سأستخدم الفكرة الثانية:
1- نفكك الصورة الى بكسلاتها، ونقرأ الصورة بكسل بكسل.



PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

2- ثم سأفكك كل بكسل الى مكوناته الرئيسة، وأحتفظ بقيمة كل مكون في موقع خزني:



PHP كود :
red = (your image ).GetPixel(ji).R
green 
= (your image ).GetPixel(ji).G
blue 
=(your image ).GetPixel(ji).

3- خوارزمية تغيير مستوى الإضاءة هو أن نضيف قيمة او ننقصها من كل مكون، مع الإحتراز من أن يعبر قيمة 255 في حال الـBrightness، أو ينقص عن قيمة الصفر في حال الـDarkness.




PHP كود :
red red Value
If red 255 Then red 255
If red 0 Then red 

لم يبق سوى إعادة رسك بكسلات الصورة، وهذا تجده مشروحاً في الدرس الأول.

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس الخامس سيكون تغيير الوان محددة في الصورة.


خامساً: شرح خوارزمية تغيير الوان محددة في الصورة

لن أطيل في الكلام ولن أزيد أكثر من سطر او سطرين على الخوارزمية السابقة:


بدل من إضافة قيمة معينة ومتساوية لكل مكون من مكونات البكسل، سنضيف قيمة لمكون واحد، أو قيم مختلفة للمكونات الثلاث.

انظر الصورة




PHP كود :
red red Value1                  ' أي زيادة تضيف إحمراراً للصورة
If red > 255 Then red = 255
If red < 0 Then red = 0
green = green + Value2             ' 
أي زيادة تضيف إخضراراً  للصورة      
If green 255 Then green 255
If green 0 Then green 0    
blue 
blue Value3         
If blue 255 Then blue 255        ' يجب أن لا يتجاوز المقدار بعد الإضافة 255
If blue < 0 Then blue = 0                 ' 
ولا أن يقل عن الصفر في حالة النقصان 

ثم نعيد رسم البكسلات من جديد بالدالة SetPixel.


ملاحظة: لمن يرى ان الشرح مختصر جداً، أطلب منه أن يراجع شرح الخوارزميات التي سبق ونشرتها في المنتدى، الأجزاء 1 و 2 و 3.

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس السادس سيكون عكس الصورة Flipping.


سادساً: شرح خوارزمية قلب الصورة افقياً Flip Horizontal

تكملة لما شرحته في الخوارزميات الخمس الأولى، اليوم سنحاول قلب الصورة افقياً، ولن نتعامل اليوم مع ألوان البكسلات أكثر من قراءتها من موقع معين في الصورة ثم إعادة رسمها في الموقع المناظر له افقياً.

لو تمعنت معي كود قراءة البكسلات:



PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

لاحظ أن j هي التي تخص الصورة افقياً، بينما i تخص أعمدة الصورة، لذا سنركز على العداد j في موضوع قلب الصورة افقياً.

ولكي أسهل عليك فهم هذه الخوارزمية، لاحظ معي هذه المصفوفة المكونة من ثمانية مواقع 0

رمز برمجي:

الموقع    7    6    5    4    3    2    1    0
القيمة    214    86    56    92    67    85    77    11

سأقلب هذه المصفوفة افقياً، وأقصد بذلك أن أجعل القيمة 11 تجلس على الكرسي الأخير، وكذلك القيمة 214 تجلس على الكرسي 1، ونفس الفكرة للباقين.

هنا يجب أن نعرف كل قيمة ونظيرها في الموقع، أي الكرسي الأول يكون نظيره الأخير، والثاني يكون نظيره ما قبل الأخير، وهكذا.

لتصبح بعد القلب:

رمز برمجي:

الموقع    7    6    5    4    3    2    1    0
القيمة    11    77    85    67    92    56    86    214


كتابة الكود هي أن أن أقرأ البكسل ( i , j ) وأرسم قيمته في الموقع ( i , Width – j –1 )، وإن سألتني لماذا لا نرسمه في الموقع ( I –1, j Height –)، أقول لك أن الصورة في هذه الحالة ستنقلب عمودياً وليس افقياً.

انظر الى المصفوفة السابقة مرة أخرى، الموقع 0

سيتم رسمه في الموقع 8-0-1 = 7

وقيمة الموقع 1 ستجلس ضيفة معززة ومكرّمة في الموقع 8-1-1=6 ، وقيمة الموقع 3 مثلاً ستجلس في الموقع 8-1-3=4، وهكذا لبقية العناصر.

إذا خوارزمية البرنامج:

1- نفكك الصورة الى بكسلاتها، ونقرأ الصورة بكسل بكسل.



PHP كود :
For  i  0 To  (your image ).Height 1
    For  j 
 0 To (your image ).Width – 1 

2- ثم نعيد رسم البكسلات ( ننقلها من مواقعها الأصلية الى المواقع النظيرة):

قد لا تحتاج الى تفكيك اللون الى مكوناته الثلاث، لكني أستخدمت طريقة الـ Copy – Paste لكل الكودات في البرنامج، لذا تجدني أفكك اللون وأعيد رسمه، الأفضل عدم إشغال الـCPU بدوال ووظائف لا تحتاجها.

وعموماُ نعود الى الخوارزمية مرة أخرى،
إعادة رسم البكسلات في المواقع النظيرة هو:



PHP كود :
bmap.SetPixel(.Width 1iColor.FromArgb(redgreenblue)) 

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس السابع سيكون قلب الصورة عمودياً.


سابعاً: شرح خوارزمية قلب الصورة عمودياً

لن أطيل في الكلام ولن أزيد أكثر من سطر او سطرين على الخوارزمية السابقة:

بدل من الإعتماد على العداد j في القلب، سنعتمد على العداد i لأنه صاحب العلاقة مع الصورة ومواقعها عمودياً.

سأكتفي هنا بسرد كود إعادة رسم البكسلات:



PHP كود :
bmap.SetPixel(j, .Height 1Color.FromArgb(redgreenblue)) 


أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس الثامن سيكون قلب الصورة افقياً وعمودياً.



ثامناً : شرح خوارزمية قلب الصورة افقياً و عمودياً
لن أطيل في الكلام ولن أزيد أكثر من سطر او سطرين على ما سبق سوى:

أن الإعتماد هنا سيكون على العداد j في القلب الأفقي ، و العداد i في القلب العمودي، لأنهما صاحبا العلاقة مع الصورة ومواقعها افقياً عمودياً.

سأكتفي هنا بسرد كود إعادة رسم البكسلات:



PHP كود :
bmap.SetPixel(.Width 1iColor.FromArgb(redgreenblue))    
bmap
.SetPixel(j, .Height 1Color.FromArgb(redgreenblue)) 

أرجو أن يكون شرحي بسيطاً ومفهوماً، والدرس التاسع سيكون مرآة الصورة Mirror.


ثامناً: شرح خوارزمية المرآة Mirror

تكملة لما شرحته في الخوارزميات السبع السابقة، اليوم سنحاول إيجاد مرآة للصورة، ولن نتعامل اليوم مع ألوان البكسلات أكثر من قراءتها من موقع معين في الصورة ثم إعادة رسمها في الموقع المقابل له افقياً أو عمودياً، إعتماداً على نوع أو لنقل مكان المرآة بالنسبة الى الصورة.

لذا سأكتب فكرة المرآة على أربعة أجزاء:


8.1 left to right mirror:


سأقلب الجزء الأيسر من الصورة وأرسمه على الجزء الأيمن منها، مع الحفاظ على الجزء الأيسر من الصورة دون قلب.

الفرق بين المرآة والقلب هنا هي أن الجزء الأيسر في المرآة يبقى نفسه، لا يتغير، بينما في القلب نعكس الصورة بأكمله، لاحظ الفرق في الصورة ادناه:



من هذه الصورة يتبين أن المرآة فرع من فروع القلب Flipping، وكل ما في الموضوع من فرق هو في نحديد حجم المنطقة المقلوبة.

تعال معي لنرَ كود البرنامج:

لو تمعنت معي كود قراءة البكسلات:


1- نفكك النصف ألأيسر من الصورة الى بكسلاتها، ونقرأها بكسل بكسل.



PHP كود :
For 0 To .Height – 1
    For j 
0 To (.Width 1  
2
لاحظ كيف أني لم أتجرأ على إتمام العداد الثاني، بل اني توقفت الى الحد الوسط من الصورة.

2- ثم سأرسم البكسلات التي تم قراءتها في المواقع المقابلة، ، فالموقع x سأرسمه في الموقع width – x ، هذه هي فكرة المرآة من اليسار الى اليمين.



PHP كود :
bmap.SetPixel(.Width 1iColor.FromArgb(redgreenblue)) 

لن ارسم البكسلات في نفس مواقعها فلا حاجة لي في إعادة رسم نفس اللون في نفس الموقع.


الجزء الثاني


8.2 Right to left Mirror:



هنا سأقلب الجزء الأيمن من الصورة الى اليسار منها، وأبقي طبعاً على الجزء الأيمن سالماً من كل تغيير.



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



PHP كود :
For 0 To .Height – 1
    For j 
= (.Width 1 2  To  .Width 

من الوسط الى أخر الطرف من الصورة، هذا هو الجزء الأيمن من الصورة،

وكود إعادة الرسم هو نفسه السابق، وكود رسم البكسلات في المواقع المقابلة هو:

رموز PHP:

PHP كود :
bmap.SetPixel(.Width 1iColor.FromArgb(redgreenblue)) 

الدرس التالي

الجزء الثالث من مرآة الصورة

مرآة الجزء العلوي من الصورة

ثم الجزء الرابع والأخير

مرآة الجزء الأسفل من الصورة

إن شاء الله
__________________


الجزء الثالث

تكملة لما شرحته في الجزء الأول من الدرس الثامن، هنا الجزء الثاني منه، مرآة الصورة من الأعلى الى الأسفل، ومن الأسفل الى الأعلى.


8.3 top down mirror:



سأقلب الجزء الأعلى من الصورة وأرسمه على الجزء الأسفل منها، مع الحفاظ على الجزء الأعلى من الصورة دون قلب.



تعال معي لنرَ كود قراءة البكسلات:

1- نفكك النصف ألأيسر من الصورة الى بكسلاتها، ونقرأها بكسل بكسل.



PHP كود :
For 0 To (.Height – 1 2
    For j 
0 To  .Width 

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

2- ثم سأرسم البكسلات التي تم قراءتها في المواقع المقابلة، ، فالموقع y سأرسمه في الموقع Height - y ، هذه هي فكرة المرآة من الأعلى الى الأسفل.

3- ثم أعيد رسم البكسلات العلوية ولكن في مواقع الصورة من الوسط الى الأسفل:



PHP كود :
bmap.SetPixel(, . Height – i – 1 Color.FromArgb(redgreen



الجزء الثاني


8.4 down top mirror:



هنا سأقلب الجزء الأسفل من الصورة الى الأعلى منها، وأبقي طبعاً على الجزء الأسفل سالماً من كل تغيير.



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



PHP كود :
For = (.Height – 1 2  To  .Height – 1
    For j 
0  To  .Width 

من الوسط الى أخر الطرف من الصورة من الأعلى.

هذا هو الجزء الأسفل من الصورة، وكود إعادة الرسم هو نفسه السابق، وكود رسم البكسلات في المواقع المقابلة هو:



PHP كود :
bmap.SetPixel(, . Height – i – 1 Color.FromArgb(redgreenblue)) 

الدرس التاسع تحويل الصورة الى نحت طيني Emboss.


كل درس يوجد في المرفقات كملف ورد..وبرنامج مع الكود


الملفات المرفقة
.rar   Fowzi VBNET Image processing.rar (الحجم : 334.15 ك ب / التحميلات : 455)
الرد }}}
#2
شكراً جزيلا و تم التعديل على الصور برفعها على السيرفر الخاص بالمنتدى الجديد
http://vb4arb.com/vb/uploader.php
الرد }}}
تم الشكر بواسطة:
#3
جزاك الله خيرا أخي الكريم ...جعلها الله في ميزان حسناتك
الرد }}}
تم الشكر بواسطة: منى
#4
جزاك الله خيرا وجعلها في ميزان حسناتك
الرد }}}
تم الشكر بواسطة:
#5
جزاكي الله كل خير Smile
هذا الموضوع موجود بـ قسم أسئلة واستفسارات الأعضاء وليس قسم المقالات
جاري إبلاغ المشرفين لنقله للقسم الصحيح
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم

تم النقل الى قسم مقالات vb.net
الرد }}}
تم الشكر بواسطة:
#7
(18-10-12, 12:09 AM)RaggiTech كتب : شكراً جزيلا و تم التعديل على الصور برفعها على السيرفر الخاص بالمنتدى الجديد
http://vb4arb.com/vb/uploader.php

جزاك الله خيرا وجعلها في ميزان حسناتك
الرد }}}
تم الشكر بواسطة:
#8
مــوضوع رائـــع , شكــراً جزيـلاً



[صورة مرفقة: g5qidgW.jpg]

ســبحــانك الـلهم بـحمدك , الـلهم لا عــلم لـنا الى مــأ علــمتــنا , الـلهـم علــمنـا ما جــهلـنا وانــفـعنــا بــما عــلمــتنـا انــك انـتَ الـسـميع الــعلــيم الـحكـيم ~~!I!

الرد }}}
تم الشكر بواسطة:
#9
موضوع رائع جدا
بارك الله فيك
وجعلها في ميزان حسناتك
الرد }}}
تم الشكر بواسطة:
#10
رائع جدا أخي الكريم
موضوع متعوب عليه
تجزى إن شاء الله خير جزاء
الرد }}}
تم الشكر بواسطة: yasser_72


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Video [درس فيديو] تقارير الكريستال ريبورت وتغيير مسار الصور أثناء التشغيل رمضان272 0 1,607 28-03-22, 03:18 AM
آخر رد: رمضان272
  معالجة التنبيهات في البرامج (استقبال تنبيهات داخل البرنامج) Dev Express ابو ليلى 9 9,265 10-02-22, 09:55 PM
آخر رد: عبدالحميد حسني
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 3 5,856 30-07-21, 05:14 PM
آخر رد: kebboud
  Compare Images المقارنة بين الصور Abu Ehab 0 3,269 31-10-18, 04:27 PM
آخر رد: Abu Ehab
  مقدمة إلي ضغط الصور ..... Zip Bitmap silverlight 0 2,392 10-05-18, 04:35 AM
آخر رد: silverlight
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 8 7,693 06-10-17, 01:43 AM
آخر رد: حمادة دراز
  مشروع لجلب الصور من الماسحة الضوئية (Scanner) m.sami.ak 14 12,084 22-01-17, 10:41 AM
آخر رد: amko
Rainbow دروس Toolbox in VB.NET موضوع متجدد Genius Live 9 10,867 14-11-16, 08:42 AM
آخر رد: Genius Live
  [VB.NET] تشغيل Twain الخاص بسحب الصور من السكنر في حالة net framework4 ahmed saleh 4 4,374 25-10-15, 07:20 PM
آخر رد: عدنان الشمري
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 5,068 03-06-15, 10:45 PM
آخر رد: أحمد النجار

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم