أستخدام الاسلوب PaintPicture لعمل تاثير Zoom على الصور
صفحة 1 من اصل 1 • شاطر
أستخدام الاسلوب PaintPicture لعمل تاثير Zoom على الصور
بسم الله الرحمن الرحيم
يسمح الأسلوب PaintPicture بعمل المؤثرات الخاصة مع الصور النقطية لذلك من الممكن استخدامه لعمل تأثير Zoom على صورة معينة و ذلك من خلال قراءة ابعاد تلك الصورة و تعديل تلك الابعاد بحجم اكبر و عرض الناتج فى مربع صورة اخرى
وهذا مثال عملى على ذلك
1) إنشاء مشروع EXE قياسي جديد.
2) إضافة اثنين PictureBoxes إلى Form1.
3) أجعل Picture1 أكبر ثم Picture2.
4) إضافة أي صورة إلى عنصر التحكم Picture1.
5) السابقة الأسطر التالية من التعليمات البرمجية إلى Form1:
- الاعلان عن متغيرات تخزين أبعاد الصور المصدر بها
- الكود:
Dim LastX As Single
Dim LastY As Single
_نقوم بعمل اجراء وليكن بأسم ZoomPicture لقراءة أبعاد الصورة على النحو التالى :
- الكود:
Public Sub ZoomPicture(Picture As StdPicture, X As Single, Y As Single, ZoomWindow As PictureBox, Optional Factor As Byte = 2)
ZoomWindow.PaintPicture Picture, 0, 0, ZoomWindow.ScaleWidth, ZoomWindow.ScaleHeight, X, Y, ZoomWindow.ScaleWidth / Factor, ZoomWindow.ScaleHeight / Factor, vbSrcCopy
End Sub
وحتى نستطيع فهم الكود السابق تعالوا نرى كافة الملعمات التى يتطلبها الاسلوب PaintPicture وهى على النحو التالى :
object.PaintPicture source, x1, y1, w1, h1, x2, y2, w2, h2, opcode
حيث أن :
_ object ...اسم مربع صورة، نموذج، أو كائن الطابعة أو كائن الوجهة و التى سيتم عرض الصورة عليها بعد التعديل
_source ...مصدر الرسم أو الصورة و التى تكون عادة موجودة فى Picturebox
_x1, y1 ....قيم رقمية تدل على دقة الإحداثيات الوجهة (وبعبارة أخرى، وموقع على الكائن الوجهة حيث الزاوية العلوية اليسرى من الصورة التي يمكن استخلاصها). والخاصية ScaleMode للكائن يحدد وحدة القياس المستخدمة
_w1, h1......قيم رقمية تدل على دقة عرض وجهة وارتفاع الصورة، وذلك باستخدام وحدات تحددها الخاصية ScaleMode الكائن الوجهة. فإذا كان عرض الوجهة أو ارتفاع أكبر أو أصغر من عرض المصدر (W2) أو ارتفاع (H2)،فيمتد الصورة أو مضغوط لتناسب. هذه الحجج هي اختيارية، وإذا قمت بحذفها يتم استخدام عرض المصدر (W1) والارتفاع (H1) مع عدم وجود تمتد أو ضغط.
_x2, y2: ....قيم رقمية تدل على دقة الإحداثيات مصدر كائن الصورة المراد نسخها وهذه الحجج هي اختيارية، وإذا قمت بحذفها فانها تعتبر 0 و تشير إلى الزاوية العليا اليسرى من الصورة المصدر.
_w2, h2 ....قيم رقمية تدل على دقة العرض والارتفاع من منطقة داخل مصدر و هذه الحجج هي اختيارية، وإذا قمت بحذفها يتم استخدام عرض المصدر بالكامل وارتفاع
_opcode....قيمية رقمية من نوع Long الذي يحدد العملية التى يتم تنفيذها بين وحدات البكسل من الصورة المصدر وبكسل من أي صورة موجودة على الوجهة
_ فى حدث MouseMove لمربع الصورة الاول نقوم بكتابة الشفرة التالية :
- الكود:
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ZoomPicture Picture1.Image, X, Y, Picture2
LastX = X
LastY = Y
End Sub
_ فى حدث Paint لمربع الصورة الثانية نكتب الشفرة التالية :
- الكود:
Private Sub Picture2_Paint()
ZoomPicture Picture1.Image, LastX, LastY, Picture2
End Sub
end.sub- .....
- تاريخ التسجيل : 15/08/2013
المساهمات : 70
النقاط : 132
التقيم : 10
الدولة :
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد