منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : المعالجةالصورية (الدرس الخامس(Mirror))
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[COLOR="#800000"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي أمري واحلل عقدة من لساني يفقه قولي))
صدق الله العلي العظيم


بسم الله الرحمن الرحيم
وصلى الله على محمد وآله الطاهرين[/COLOR]

[COLOR="#800000"]في هذا الدرس سوف نقوم بعكس الصورة, أي نعمل Mirror للصورة يعني عند استخدام هذا الكود سوف تظهر الصورة معكوسة وهذا هو الكود :
[/COLOR]

PHP كود :
int m
            
bmpdata bmp.LockBits(new Rectangle(00bmp.Widthbmp.Height), ImageLockMode.ReadWritePixelFormat.Format24bppRgb); 
            
IntPtr scan0 bmpdata.Scan0
            
unsafe 
            

                
stride bmpdata.Stride
                
remain stride bmp.Width 3
                
byte= (byte*)(void*)scan0
                for (
0bmp.Heighti++) 
                { 
                    for (
0bmp.Widthj++) 
                    { 
                        
= (bmp.Width j);//Flipping the row pixels 

                        
p[2] = (byte)c[mi].R;//Red 
                        
p[1] = (byte)c[mi].G;//Green 
                        
p[0] = (byte)c[mi].B;//Blue 
                        
+= 3
                    } 
                    
+= remain
                } 
                
bmp.UnlockBits(bmpdata); 
            } 
            
pictureBox1.Image bmp


اعزائي الكرام سنأتي الآن الى شرح الكود الآتي :

PHP كود :
= (bmp.Width j);//Flipping the row pixels  

                        
p[2] = (byte)c[mi].R;//Red  
                        
p[1] = (byte)c[mi].G;//Green  
                        
p[0] = (byte)c[mi].B;//Blue 

اولا:
PHP كود :
= (bmp.Width j);//Flipping the row pixels 

[COLOR="#800000"]اعزائي هذا السطر البرمجي هو الاهم في هذا الدرس لان من خلاله نقوم بعكس الصورة وذلك بعكس قيم عرض الصورة, لنأخذ المثال التالي لكي نفهم العملية بصورة أدق.

لو فرضنا انه لدينا القيم التالية وهي عبارة عن قيم او مكونات عرض الصورة للون الاحمر[/COLOR]


PHP كود :
200 198 120 149 60 44 49 

ولو فرضنا ان هذه القيم مخزونة في المواقع التالية من المصفوفة :

PHP كود :
c[0,0].R=200 
c
[1,0].R=198 
c
[2,0].R=120 
c
[3,0].R=149 
c
[4,0].R=60 
c
[5,0].R=44 
c
[6,0].R=49 


ويتضح لنا ان حجم المصفوفة=7 من حيث العرض, والان لنطبق المعادلة اعلاه على هذه المصفوفة لكي نرى الناتج:

PHP كود :
m=7-1-0=
c
[m,0].R=49 
//c[6,0].R=49 

m=7-1-1=
c
[m,0].R=
//c[5,0].R=44 

m=7-1-2=
c
[m,0].R=60 
//c[4,0].R=60 

m=7-1-3=
c
[m,0].R=149 
//c[3,0].R=149 

m=7-1-4=
c
[m,0].R=120 
//c[2,0].R=120 

m=7-1-5=
c
[m,0].R=198 
//c[1,0].R=198 

m=7-1-6=
c
[m,0].R=200 
//c[0,0].R=200 
[COLOR="#800000"]
الى هنا قمنا بعكس محتويات الصورة فقط, والان سوف نطبق هذه التغييرات على الصورة في الذاكرة وذلك عن طريق :[/COLOR]


PHP كود :
p[2] = (byte)c[mi].R;//Red  
                        
p[1] = (byte)c[mi].G;//Green  
                        
p[0] = (byte)c[mi].B;//Blue 


حيث سيأخذ الموقع الاول للصورة في الذاكرة قيمة الموقع الاخير من المصفوفة وهكذا الى ان تصبح الصورة معكوسة.
[COLOR="#800000"]

الحمد لله والشكر لله انتهينا من هذا الدرس من هذه السلسة وانا بانتظار استفساراتكم واسئلتكم وردودكم, ولا تنسوني و والدي من صالح دعائكم[/COLOR]