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

نسخة كاملة : مشكلة فى Dim g As Graphics رسم نص وصور من اداة ريتش تكست بوكس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
(13-09-16, 07:23 PM)silverlight كتب : [ -> ]كل عام وانت بخير .... أنا ب أعتذر لأني لا أستطيع مساعدتك حاليا لأن نسخة الويندوز الأصلية الخاصة بجهاز الكمبيوتر ضربت و في الوقت الراهن أنا أبحث عن حل للمشكلة ..... موضوعك سهل جدا ...لكن... قدر الله و ما شاء فعل

وانت بخير اخى

طيب هل استطيع انتظارك لمساعدتى ؟؟

ومشكووووووووووووور جدا جدا

بارك الله فيك
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اريد صنع فيديو من صور ونصوص

يعنى اضيف صور ونصوص مثلا لاداة الريتش بوكس واقوم بصنع فيديو منهم

شوف هذا الفيديو

https://youtu.be/KJjsFKdHaOM

تم وضع النص فى اداة الريتش بوكس

ثم صنع الفيديو

والنص تتحرك للاعلى

هذا هو المطلوب + اضافة صور مع النصوص

الى فى الفيدي هذا ما قدرت اوصل له وهو صنع فيديو من النص فقط

لكن لم استطع اضافة صور ونصوص مع بعض فى الفيديو

والمطلوب الان هو اضافة صور ونصوص فى الريتش بوكس

وصنع فيديو منهم

كما فى هذا الرابط
https://youtu.be/KJjsFKdHaOM

يارب اكون قدرت اوضح لك ما اريد
up upup upup upup up
يا اخي الفاضل

 انا لست محتاج فيديو لاقوم بكتابة كود مثل هذا
كل ما في الامر إن انت حظك مش كويس و انا ما زلت عندي مشكلة مع الفيحوال استوديو

عموما و بشكل مبدئي حل مشكلتك يبدأ من هنا

الرابط

ادرس الكود في الرابط اعلاه و كل ما عليك ان تفعله هو ان تضيف الصور للمصفوفة بدلا من تغيير الشفافية كما هو موجود في المثال
و سيتبقي لك لاحقا ان اكتب لك الكود الخاص بحفظ الصور في ملف و حتي هذا الكود انا كتبته من قبل و هو موجود في احد المقالات التي قمت بكتابتها في الموقع

وهذا هو الرابط الخاص بالمقال

الرابط
(18-09-16, 05:52 PM)silverlight كتب : [ -> ]يا اخي الفاضل

 انا لست محتاج فيديو لاقوم بكتابة كود مثل هذا
كل ما في الامر إن انت حظك مش كويس و انا ما زلت عندي مشكلة مع الفيحوال استوديو

عموما و بشكل مبدئي حل مشكلتك يبدأ من هنا

الرابط

ادرس الكود في الرابط اعلاه و كل ما عليك ان تفعله هو ان تضيف الصور للمصفوفة بدلا من تغيير الشفافية كما هو موجود في المثال
و سيتبقي لك لاحقا ان اكتب لك الكود الخاص بحفظ الصور في ملف و حتي هذا الكود انا كتبته من قبل و هو موجود في احد المقالات التي قمت بكتابتها في الموقع

وهذا هو الرابط الخاص بالمقال

الرابط

حسنا اخى انا هنتظرك

ليس لانى كاسل عن المحاولة

ولكن والله غلب امرى وجربت اكتر من طريقة وبحثت كثير وسئلت بعض الاشخاص

ولكن دون جدوى

وانت الشخص الوحيد الذى اعطانى الامل انه ممكن ان يتنفذ ما اريد عمله

لذلك سانتظرك والله الموفق والمستعان
للرفع للرفع للرفع
للرفع للرفع للرفع
هذا الكود مع الشرح
كود :
Public Class Form1

    Dim mThread As Threading.Thread

    ' اسم ملف الفيديو
    Dim filename As String = "filename.mp4"

    ' النص المراد طباعته
    Dim mText As String = "النص المراد طباعته"

    ' حجم ونوع الخط
    Dim mFont As Font = New Font("Arial", 20, FontStyle.Bold)

    ' لو الخط
    Dim mColor As Color = Color.White

    ' خصائص رسم النص
    Dim mStringFormat As New StringFormat(StringFormatFlags.DirectionRightToLeft) With {.Alignment = StringAlignment.Center}

    ' حجم أو مساحة النص
    Dim mTextSize As SizeF

    ' مؤشر مكان النص في الإطار
    Dim positionY As Single

    ' إنشاء كائن كتابة ملف الفيديو
    Dim writer As New AForge.Video.FFMPEG.VideoFileWriter()

    ' صورة الخلفية
    Dim mImage As Image

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ' الاحتفاظ بصورة الخلفية الموجود في مربع الصورة
        mImage = PictureBox1.Image
    End Sub


    ' حجم مقاس الفيديو
    Dim videoFrameSize As New Size(640, 480)

    ' تعرفات خلصة بالرسم
    Dim videoBitmap As New Bitmap(videoFrameSize.Width, videoFrameSize.Height)
    Dim videoGraphics As Graphics = Graphics.FromImage(videoBitmap)

    ' زر بدء عمل الفيديو
    Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        ' معدل الإطارات في الثانية
        Dim videoFrameRate As Integer = 25

        ' نوع ترميز الفيديو
        Dim videoCodec As AForge.Video.FFMPEG.VideoCodec = AForge.Video.FFMPEG.VideoCodec.MPEG4

        ' معدل دقة الفيديو بالبت
        Dim videoBitRate As Integer = 1000000

        ' إنشاء ملف الفيديو
        writer.Open(filename, videoFrameSize.Width, videoFrameSize.Height, videoFrameRate, videoCodec, videoBitRate)


        ' معرفة حجم أو مساحة النص
        mTextSize = TextRenderer.MeasureText(mText, mFont)

        ' تعديل بداية مكان النص
        positionY = videoFrameSize.Height

        ' تفعيل وتعطيل الأزارير
        Button1.Enabled = False
        Button2.Enabled = True

        ' إنشاء عملية معالجة خلفية
        mThread = New Threading.Thread(AddressOf task)
        Control.CheckForIllegalCrossThreadCalls = False
        mThread.IsBackground = True
        mThread.Start()

    End Sub

    ' زر إيقاف إتمام العملية
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click

        ' ألغ عملية المعالجة إن كانت قيد العمل
        If mThread.IsAlive Then mThread.Abort()

        ' إغلاق ملف الفيديو
        writer.Close()

        ' تفعيل وتعطيل الأزارير
        Button1.Enabled = True
        Button2.Enabled = False

    End Sub

    ' روتين عملية المعالجة الخلفية
    Sub task()

        ' حلقة تكرار
        Do
            PictureBox1.Invoke(Sub()

                                   ' تلوين الخلفية
                                   videoGraphics.Clear(Color.Black)

                                   ' التأكد من وجود صورة للخلية
                                   If Not IsNothing(mImage) Then
                                       ' رسم صورة الخلفية
                                       videoGraphics.DrawImage(mImage, New Rectangle(0, 0, videoFrameSize.Width, videoFrameSize.Height))
                                   End If

                                   ' رسم النص
                                   videoGraphics.DrawString(mText, mFont, New SolidBrush(mColor), New Rectangle(New Point(0, positionY), videoFrameSize), mStringFormat)

                                   ' إظهار الإطار في مربع الصورة
                                   PictureBox1.Image = videoBitmap

                                   ' اضافة الإطار الى ملف الفيديو
                                   If writer.IsOpen Then
                                       writer.WriteVideoFrame(videoBitmap)
                                   Else
                                       Exit Sub
                                   End If

                                   ' تعديل مكان النص
                                   positionY -= 1 ' سمكن زيادة هذا الرقم لزيادة حركة النص

                               End Sub)

            ' الخروج من حلقة التكرار عند التحقق من اختفاء النص في الأعلى
            If positionY < (-(mTextSize.Height)) Then Exit Do

        Loop

        ' إغلاق ملف الفيديو
        writer.Close()

        ' تفعيل وتعطيل الأزارير
        Button1.Enabled = True
        Button2.Enabled = False

    End Sub

End Class

وهذه صورة للنتيجة
(02-10-16, 02:05 PM)ممدوح كتب : [ -> ]هذا الكود مع الشرح
كود :
Public Class Form1

   Dim mThread As Threading.Thread

   ' اسم ملف الفيديو
   Dim filename As String = "filename.mp4"

   ' النص المراد طباعته
   Dim mText As String = "النص المراد طباعته"

   ' حجم ونوع الخط
   Dim mFont As Font = New Font("Arial", 20, FontStyle.Bold)

   ' لو الخط
   Dim mColor As Color = Color.White

   ' خصائص رسم النص
   Dim mStringFormat As New StringFormat(StringFormatFlags.DirectionRightToLeft) With {.Alignment = StringAlignment.Center}

   ' حجم أو مساحة النص
   Dim mTextSize As SizeF

   ' مؤشر مكان النص في الإطار
   Dim positionY As Single

   ' إنشاء كائن كتابة ملف الفيديو
   Dim writer As New AForge.Video.FFMPEG.VideoFileWriter()

   ' صورة الخلفية
   Dim mImage As Image

   Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       ' الاحتفاظ بصورة الخلفية الموجود في مربع الصورة
       mImage = PictureBox1.Image
   End Sub


   ' حجم مقاس الفيديو
   Dim videoFrameSize As New Size(640, 480)

   ' تعرفات خلصة بالرسم
   Dim videoBitmap As New Bitmap(videoFrameSize.Width, videoFrameSize.Height)
   Dim videoGraphics As Graphics = Graphics.FromImage(videoBitmap)

   ' زر بدء عمل الفيديو
   Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

       ' معدل الإطارات في الثانية
       Dim videoFrameRate As Integer = 25

       ' نوع ترميز الفيديو
       Dim videoCodec As AForge.Video.FFMPEG.VideoCodec = AForge.Video.FFMPEG.VideoCodec.MPEG4

       ' معدل دقة الفيديو بالبت
       Dim videoBitRate As Integer = 1000000

       ' إنشاء ملف الفيديو
       writer.Open(filename, videoFrameSize.Width, videoFrameSize.Height, videoFrameRate, videoCodec, videoBitRate)


       ' معرفة حجم أو مساحة النص
       mTextSize = TextRenderer.MeasureText(mText, mFont)

       ' تعديل بداية مكان النص
       positionY = videoFrameSize.Height

       ' تفعيل وتعطيل الأزارير
       Button1.Enabled = False
       Button2.Enabled = True

       ' إنشاء عملية معالجة خلفية
       mThread = New Threading.Thread(AddressOf task)
       Control.CheckForIllegalCrossThreadCalls = False
       mThread.IsBackground = True
       mThread.Start()

   End Sub

   ' زر إيقاف إتمام العملية
   Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click

       ' ألغ عملية المعالجة إن كانت قيد العمل
       If mThread.IsAlive Then mThread.Abort()

       ' إغلاق ملف الفيديو
       writer.Close()

       ' تفعيل وتعطيل الأزارير
       Button1.Enabled = True
       Button2.Enabled = False

   End Sub

   ' روتين عملية المعالجة الخلفية
   Sub task()

       ' حلقة تكرار
       Do
           PictureBox1.Invoke(Sub()

                                  ' تلوين الخلفية
                                  videoGraphics.Clear(Color.Black)

                                  ' التأكد من وجود صورة للخلية
                                  If Not IsNothing(mImage) Then
                                      ' رسم صورة الخلفية
                                      videoGraphics.DrawImage(mImage, New Rectangle(0, 0, videoFrameSize.Width, videoFrameSize.Height))
                                  End If

                                  ' رسم النص
                                  videoGraphics.DrawString(mText, mFont, New SolidBrush(mColor), New Rectangle(New Point(0, positionY), videoFrameSize), mStringFormat)

                                  ' إظهار الإطار في مربع الصورة
                                  PictureBox1.Image = videoBitmap

                                  ' اضافة الإطار الى ملف الفيديو
                                  If writer.IsOpen Then
                                      writer.WriteVideoFrame(videoBitmap)
                                  Else
                                      Exit Sub
                                  End If

                                  ' تعديل مكان النص
                                  positionY -= 1 ' سمكن زيادة هذا الرقم لزيادة حركة النص

                              End Sub)

           ' الخروج من حلقة التكرار عند التحقق من اختفاء النص في الأعلى
           If positionY < (-(mTextSize.Height)) Then Exit Do

       Loop

       ' إغلاق ملف الفيديو
       writer.Close()

       ' تفعيل وتعطيل الأزارير
       Button1.Enabled = True
       Button2.Enabled = False

   End Sub

End Class

وهذه صورة للنتيجة
السلام عليكم

اولا شكرا لمساعدتك يا استاذ ممدوح

بس دا انا عامله فى المشروع واكتر

ولكن المشكلة الى قابلتنى او طلبي الى انا عامل الموضوع دا علشانه هو :

اضافة كلام وصور (اكتر من صورة وليس صورة واحدة)

الى اداة RichTextBox1

واضغط على زر انشاء الفيديو

يعمل الفيديو لكل الموجود فى RichTextBox1

بالترتيب

مثلا هذا

PHP كود :
برنامج الماجيك مسعد للنشر التلقائى MG-AUTO-POST
 
[img]http://www.elmagek.net/up/do.php?down=269[/img]
مميزات البرنامج
----------------------------
يتميز بخواص لتخطى الحظر لاطول فترة ممكنة بنسبة 90بناءا على تقييم العملاء

عمل تاج لجميع اعضاء الجروب

عمل تاج لجميع الاصدقاء

-النشر بكل الجروبات (جروبات الحساب او اضافة ملف اى دى)

النشر بكل الصفحات (صفحات الحساب او اضافة ملف اى دى)
 [
img]http://www.elmagek.net/up/do.php?down=269[/img] 

يتعمل الفيديو بالظبط زى ما هو موجود


PHP كود :
برنامج الماجيك مسعد للنشر التلقائى MG-AUTO-POST
 
[img]http://www.elmagek.net/up/do.php?down=269[/img]
مميزات البرنامج
----------------------------
يتميز بخواص لتخطى الحظر لاطول فترة ممكنة بنسبة 90بناءا على تقييم العملاء

عمل تاج لجميع اعضاء الجروب

عمل تاج لجميع الاصدقاء

-النشر بكل الجروبات (جروبات الحساب او اضافة ملف اى دى)

النشر بكل الصفحات (صفحات الحساب او اضافة ملف اى دى)
 [
img]http://www.elmagek.net/up/do.php?down=269[/img] 
يعنى الكلام والصور تظهر

زى الفيديو الى انت عملته كدا
الفيديو بتاعك بيظهر الكلام وبيحركه لفوق صح؟
هو طلبي نفس الشئ

يظهر الكلام والصور ويحركهم لفوق

اتمنى تكون فهمت قصدى وتقدر تساعدنى

بانتظار ردك
الصفحات : 1 2 3