نسخ جزء من صورة في PictureBox جديد

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

نسخ جزء من صورة في PictureBox جديد

مُساهمة من طرف end.sub في الثلاثاء ديسمبر 24, 2013 7:42 am

بسم الله الرحمن الرحيم 

_ لنتعلم كيفية نسخ جزء محدد من صورة موجودة فى PictureBox الى مربع PictureBox جديد نتبع الخطوات التالية :

1_ إنشاء مشروع نوافذ جديد 
2_ نقوم باضافة عدد 2 مربع صورة PictureBox 
3_ نقوم بإضافة عدد 4 مربع نص وذلك لادخال ابعاد الجزء المراد نسخة فى تلك المربعات كالطول و العرض و الارتفاع ...الخ
4_ إضافة زر امر 
5_ إضافة صورة معينة فى مربع الصورة PictureBox الاول 

الشكل العام للنافذة على النحو التالى :


6_ نقوم بكتابة الكود التالى فى حدث النقر لزر الامر

_ الاعلان عن متغيرات لتخزين قيم العرض الطول الارتفاع الاعلى
الرمز:
Dim top As Integer = Integer.Parse(txtTop.Text)
        Dim left As Integer = Integer.Parse(txtLeft.Text)
        Dim width As Integer = Integer.Parse(txtWidth.Text)
        Dim height As Integer = Integer.Parse(txtHeight.Text)

_ نقوم بانشاء صورة نقطية على النحو التالى :
الرمز:
Dim bm As New Bitmap(width, height)

_نقوم بربط كائن الرسومات بالصورة النقطية مع تحديد بيانات الصورة المصدر كالطول و العرض ...الخ ثم نسخ الجزء الذى تم تحديدة على النحو التالى :
الرمز:
 Using gr As Graphics = Graphics.FromImage(bm)
            '
            Dim src_rect As New Rectangle(left, top, width, _
                height)
            Dim dst_rect As New Rectangle(0, 0, width, height)


            gr.DrawImage(picOriginal.Image, dst_rect, src_rect, _
                GraphicsUnit.Pixel)
        End Using

_ حيث ان picOriginal هو مربع الصورة الذى يحتوى على الصورة المصدر

_ اخير نقوم بعرض الجزء المحدد فى مربع الصورة الثانى :
الرمز:
picResult.Image = bm

و الكود الكامل كما يلى :

الرمز:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim top As Integer = Integer.Parse(txtTop.Text)
        Dim left As Integer = Integer.Parse(txtLeft.Text)
        Dim width As Integer = Integer.Parse(txtWidth.Text)
        Dim height As Integer = Integer.Parse(txtHeight.Text)


        Dim bm As New Bitmap(width, height)

        Using gr As Graphics = Graphics.FromImage(bm)
            '
            Dim src_rect As New Rectangle(left, top, width, _
                height)
            Dim dst_rect As New Rectangle(0, 0, width, height)


            gr.DrawImage(picOriginal.Image, dst_rect, src_rect, _
                GraphicsUnit.Pixel)
        End Using

        picResult.Image = bm
    End Sub

end.sub
.....
.....

تاريخ التسجيل : 15/08/2013
المساهمات : 70
النقاط : 131
التقيم : 9
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى