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

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


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

السلام عليكم اخواني واخواتي زوار واعضاء المنتدى الاعزاء عدنا اليكم والعود عود احمد بدورس جديدة في الImage Processing باستخدام لغة C#.Net, في الدرس السابق تعلمنا كيف نعملMirror او(FlipHorezintal) للصورة وذلك عن طريق عكس عرض الصورة بطريقة سهلة جدا, والآن سنتعلم FlipVertical و FlipBoth أي عكس الصورة بصورة عمودية وعكس الصورة بصورة افقية وعمودية معا.

[COLOR="#800000"]هيا لنعمل FlipVerticl للصورة :

الطريقة سهلة جدا وذلك بعكس ارتفاع او طول الصورة Height:

اليك الكود:[/COLOR]


PHP كود :
private void button1_Click(object senderEventArgs e
        { 
            
int v
            
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.Height i);//Flipping the column pixels 

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

[COLOR="#800000"]اما لعمل FlipHorezintal فكل ما عليك فعله هو عكس عرض(Width) الصورة ,اما اذا اردنا ان نعمل (FlipBoth) فنعكس طول و عرض الصورة معا(Height and Width)

اليك هذا الكود لعمل FlipBoth:[/COLOR]

PHP كود :
private void button2_Click(object senderEventArgs e
        { 
            
int hv
            
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 
                        
= (bmp.Height i);//Flipping the column pixels 
                        
p[2] = (byte)c[hv].R;//Red 
                        
p[1] = (byte)c[hv].G;//Green 
                        
p[0] = (byte)c[hv].B;//Blue 
                        
+= 3
                    } 
                    
+= remain
                } 
                
bmp.UnlockBits(bmpdata); 
            } 
            
pictureBox1.Image bmp
        } 

[COLOR="#800000"]والحمد لله انتهينا من الدرس الرابع الى ان القاكم في الدرس القادم بامكانكم طرح الاسئلة كي اجيب عنها قدر الامكان.
----------------------------------------------------------------------------------
[/COLOR]
شكرا لجهودك المبذولة
[COLOR="#800000"]السلام عليكم

العفو اخي العزيز انا في خدمة هذا المنتدى ان شاءاللهSmile

شكرا على المرور[/COLOR]