تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تدوير صورة حول مركزها باستخدام gdi+
#1
كاتب الموضوع : حسام برهان


البرنامج بسيط جداً، وهو موجود بكامله ضمن الحدث Paint لأداة PictureBox على الشكل التالي:


كود :
Private Sub picShow_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picShow.Paint
Dim img As Image
Dim pt As Point

img = New Bitmap("myimage.jpg")
pt = New Point(picShow.Width / 2, picShow.Height / 2)

'Set world transform of graphics object to translate.
e.Graphics.TranslateTransform(pt.X, pt.Y)


'Then to rotate, prepending rotation matrix.
e.Graphics.RotateTransform(angle)

pt = New Point(-img.Width / 2, -img.Height / 2)
e.Graphics.DrawImage(img, pt)

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

ثم نحدد زاوية الدوران باستخدام الطريقة RotateTransform() والزاوية مُعطاة بالدرجات، بحيث تكون جهة الدوران بجهة دوران عقارب الساعة.

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

بمجرد رسم الصورة ستُدوَّر بالزاوية angle (متغير معرف على أنه private).

انظر الملف هنا لمثال على هذا الأمر.
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  البرنامج بعد وضعه في صورة exe لا يتعامل مع قاعدة البيانات محمد خلف زكي 0 2,717 04-08-16, 05:10 AM
آخر رد: محمد خلف زكي
  كيفية عمل صورة - مدورة - Rouded PictureBox ! RaggiTech 0 2,912 17-10-12, 09:55 PM
آخر رد: RaggiTech
  نسخ صورة النافذه المفتوحه Screen capture RaggiTech 0 2,129 17-10-12, 08:27 PM
آخر رد: RaggiTech
  تعلم كيف تفتح صورة من رابط داخل ال Picture box RaggiTech 0 2,188 17-10-12, 08:21 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 2,235 17-10-12, 07:24 PM
آخر رد: RaggiTech
  مثال لجملة update باستخدام متغير يحمل عبارة sql RaggiTech 0 2,110 17-10-12, 07:20 PM
آخر رد: RaggiTech
  كيفية رسم صورة متحركة على الفورم بدون تايمر RaggiTech 0 2,522 17-10-12, 07:11 PM
آخر رد: RaggiTech
  كيف تشكل الفورم طبقا لأى صورة تريدها بدون اى عناء اعتمادا على صورة لديك RaggiTech 0 2,360 17-10-12, 07:09 PM
آخر رد: RaggiTech
  الحصول على لون معين من نقطة في صورة oneyemenweb2 0 1,689 17-10-12, 06:59 PM
آخر رد: oneyemenweb2
  لتحويل صورة ملونة إلى مستوى الرمادي باستخدام مصفوفة التحويل RaggiTech 0 2,048 17-10-12, 06:04 PM
آخر رد: RaggiTech

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


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