المشاركات : 16
المواضيع 1
الإنتساب : Oct 2016
السمعة :
2
الشكر: 26
تم شكره 17 مرات في 11 مشاركات
30-10-16, 11:06 PM
(آخر تعديل لهذه المشاركة : 30-10-16, 11:41 PM {2} بواسطة جوري.)
السلام عليكم ورحمة الله وبركاته
الاخوه الكرام تقبلو فائق الاحترام
ارجو مساعدتي في
إضافه نص الي صوره بحيث يكون اسفل الصوره بدون استقطاع اي جزء منها
اي انه اضافه للصوره ويكون جزء منها عند الحفظ
وهذه صورة للتوضيح
ولكم جزيل الشكر
حسناً كبدايه انا استطيع اضافة نص علي الصوره وجعله يصل الي اسفلها ولكنه يتواجد فوقها من الاسفل وانا اريده اسفلها بمسافه
كود :
Dim gr As Graphics
Dim dr_bitmab As Bitmap
Dim penprush As New Drawing.SolidBrush(Color.Black)
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
dr_bitmab = New Bitmap(PictureBox2.Image)
'Dim cono As Bitmap = New Bitmap(PictureBox2.Width, PictureBox2.Height + 50)
gr = Graphics.FromImage(dr_bitmab)
imgQR.Image = dr_bitmab
gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
'gr.DrawString(RichTextBox1.Text, RichTextBox1.Font, penprush, PictureBox2.Location)
gr.DrawString(TextBox3.Text, New Font("Times New Roman", 16, FontStyle.Bold), New SolidBrush(Color.Red), New PointF(5, 90))
'dr_bitmab. Save (TextBox2.Text, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
اتمني ان تكون مشاركتي إثراء للموضوع وليست إعسار له
المشاركات : 16
المواضيع 1
الإنتساب : Oct 2016
السمعة :
2
الشكر: 26
تم شكره 17 مرات في 11 مشاركات
31-10-16, 01:00 AM
(آخر تعديل لهذه المشاركة : 31-10-16, 01:04 AM {2} بواسطة جوري.)
(30-10-16, 11:06 PM)جوري كتب : السلام عليكم ورحمة الله وبركاته
الاخوه الكرام تقبلو فائق الاحترام
ارجو مساعدتي في
إضافه نص الي صوره بحيث يكون اسفل الصوره بدون استقطاع اي جزء منها
اي انه اضافه للصوره ويكون جزء منها عند الحفظ
وهذه صورة للتوضيح
ولكم جزيل الشكر
حسناً كبدايه انا استطيع اضافة نص علي الصوره وجعله يصل الي اسفلها ولكنه يتواجد فوقها من الاسفل وانا اريده اسفلها بمسافه
كود :
Dim gr As Graphics
Dim dr_bitmab As Bitmap
Dim penprush As New Drawing.SolidBrush(Color.Black)
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
dr_bitmab = New Bitmap(PictureBox2.Image)
'Dim cono As Bitmap = New Bitmap(PictureBox2.Width, PictureBox2.Height + 50)
gr = Graphics.FromImage(dr_bitmab)
imgQR.Image = dr_bitmab
gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
'gr.DrawString(RichTextBox1.Text, RichTextBox1.Font, penprush, PictureBox2.Location)
gr.DrawString(TextBox3.Text, New Font("Times New Roman", 16, FontStyle.Bold), New SolidBrush(Color.Red), New PointF(5, 90))
'dr_bitmab. Save (TextBox2.Text, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
شكرا اخواني الكرام تم الحل وهذه هي الطريقه
كود :
Public Function AddBorder(ByVal bm As Bitmap, ByVal borderColor As System.Drawing.Color, ByVal borderWidthInPixels As Integer) As Bitmap
Dim newBitmap As New Bitmap(bm.Width + (borderWidthInPixels * 2), bm.Height + (borderWidthInPixels * 2))
'************************************************************************
' Draw the border
'************************************************************************
' Top
For x As Integer = 0 To newBitmap.Width - 1
For y As Integer = 0 To borderWidthInPixels
newBitmap.SetPixel(x, y, borderColor)
Next
Next
' Bottom
For x As Integer = 0 To newBitmap.Width - 1
For y As Integer = newBitmap.Height - 1 To (newBitmap.Height - 1) - borderWidthInPixels Step -1
newBitmap.SetPixel(x, y, borderColor)
Next
Next
' Left
For x As Integer = 0 To borderWidthInPixels
For y As Integer = 0 To newBitmap.Height - 1
newBitmap.SetPixel(x, y, borderColor)
Next
Next
' Right
For x As Integer = newBitmap.Width - 1 To (newBitmap.Width - 1) - borderWidthInPixels Step -1
For y As Integer = 0 To newBitmap.Height - 1
newBitmap.SetPixel(x, y, borderColor)
Next
Next
'************************************************************************
' Insert the old image into the bitmap
'************************************************************************
Dim gr As System.Drawing.Graphics = Graphics.FromImage(newBitmap)
gr.DrawImage(bm, borderWidthInPixels, borderWidthInPixels, bm.Width, bm.Height)
gr.Dispose()
Return newBitmap
End Function
منقول من هنا
استدعيتها هكذا بداخل button
كود :
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim bm As New Bitmap(PictureBox3.Image)
PictureBox2.Image = AddBorder(bm, Color.White, 10)
End Sub
اتمني لكم الافاده
استطيع الان وضع النص في الاطار الذي يلف الصوره كما هو موضح في هذا الكود من خلال زياده قيمة الارتفاع
كود :
gr.DrawString(TextBox3.Text, New Font("Times New Roman", 16, FontStyle.Bold), New SolidBrush(Color.Red), New PointF(5, 90))
من خلال تغيير الرقم 90
هذا الرد للايضاح فقط
اتمني ان تكون مشاركتي إثراء للموضوع وليست إعسار له
المشاركات : 277
المواضيع 18
الإنتساب : Dec 2013
السمعة :
34
الشكر: 1057
تم شكره 2872 مرات في 215 مشاركات
31-10-16, 09:14 AM
(آخر تعديل لهذه المشاركة : 31-10-16, 09:16 AM {2} بواسطة myalsailamy.)
شيء جميل لما الواحد يضع سؤال ما يستسلم يحاول و يحاول الى ان يجد ضالته ،، و الاجمل لما يضع الحل الذي وصل اليه
همسه :
انت بالطريق الصحيح في البرمجه و حل مشاكلك بنفسك ، ناقصك فقط خبره لتعرف الكلمات المفتاحيه التي يجب عليك انت تكتبها في قوقل لتجد اجاباتك و انت بدأت في هذا المشوار ، و ان شاء الله بعد سنين ستتذكر كلامي هذا ، مشكلة اي باحث عن اجابه هو عدم تقسيم السؤال الذي يبحث عنه بسبب عدم امتلاكه الخبره او الكسل (و هذي بداية فشل المبرمج الجديد ، و بالمناسبه هذا النوع لا يستمر بالبرمجه بعد التخرج) ، بمعنى انه يسأل لكي يحصل على الاجابه كامله ، و هذا خطأ ، مهارات البحث عن المشاكل البرمجيه هو ان تجزأ بحثك وهو كما فعلت في موضوعك بنجاح ، أولا بحثت كيف تزيد طول الصورة ، بعدها كيف تكتب نص ، و بعدها لو كان النص عربي كيف تكتبه من اليمين الى اليسار ،و بعدها كيف ترسم اطار حول الصوره ، بعدها كيف تغير شكل الاطار اما خط واحد او خطين بالاضافه الى تغيير لونه ...الخ
تحياتي لك
اسم معرفي : محمد يحيى
المشاركات : 249
المواضيع 2
الإنتساب : Apr 2016
السمعة :
34
الشكر: 342
تم شكره 290 مرات في 187 مشاركات
وعليكم السلام ورحمة الله وبركاته
بارك الله فيك وفي أخينا محمد لثناءه وتوجيهاته
رأيت كود الدالة AddBorder ورأيته فقط لعمل إطار حول الصورة فتجبت لطوله واستخدامه حلقات For
المسألة أبسط من ذلك باستخدام gr.Clear جربي هذا الكود
كود :
Public Function AddBorderX(ByVal bm As Bitmap, ByVal borderColor As System.Drawing.Color, ByVal borderWidthInPixels As Integer) As Bitmap
Dim newBitmap As New Bitmap(bm.Width + (borderWidthInPixels * 2), bm.Height + (borderWidthInPixels * 2))
Dim gr As System.Drawing.Graphics = Graphics.FromImage(newBitmap)
gr.Clear(borderColor)
gr.DrawImage(bm, borderWidthInPixels, borderWidthInPixels, bm.Width, bm.Height)
Return newBitmap
End Function
المشاركات : 16
المواضيع 1
الإنتساب : Oct 2016
السمعة :
2
الشكر: 26
تم شكره 17 مرات في 11 مشاركات
31-10-16, 08:56 PM
(آخر تعديل لهذه المشاركة : 31-10-16, 09:19 PM {2} بواسطة جوري.)
(31-10-16, 09:14 AM)myalsailamy كتب : شيء جميل لما الواحد يضع سؤال ما يستسلم يحاول و يحاول الى ان يجد ضالته ،، و الاجمل لما يضع الحل الذي وصل اليه
همسه :
انت بالطريق الصحيح في البرمجه و حل مشاكلك بنفسك ، ناقصك فقط خبره لتعرف الكلمات المفتاحيه التي يجب عليك انت تكتبها في قوقل لتجد اجاباتك و انت بدأت في هذا المشوار ، و ان شاء الله بعد سنين ستتذكر كلامي هذا ، مشكلة اي باحث عن اجابه هو عدم تقسيم السؤال الذي يبحث عنه بسبب عدم امتلاكه الخبره او الكسل (و هذي بداية فشل المبرمج الجديد ، و بالمناسبه هذا النوع لا يستمر بالبرمجه بعد التخرج) ، بمعنى انه يسأل لكي يحصل على الاجابه كامله ، و هذا خطأ ، مهارات البحث عن المشاكل البرمجيه هو ان تجزأ بحثك وهو كما فعلت في موضوعك بنجاح ، أولا بحثت كيف تزيد طول الصورة ، بعدها كيف تكتب نص ، و بعدها لو كان النص عربي كيف تكتبه من اليمين الى اليسار ،و بعدها كيف ترسم اطار حول الصوره ، بعدها كيف تغير شكل الاطار اما خط واحد او خطين بالاضافه الى تغيير لونه ...الخ
تحياتي لك
وسام علي صدري - انار الله لك الدنيا وزادك من علمه
وادخل البهجه علي صدرك -وسقاك من حوض نبيه الكريم - واظلك تحت عرشه
والله - لقد قرأت ردك الكريم - وكلما انتهيت احببت قرائته مرة اخري وهذا ما يحدث لي في كل مره
تدخل البهجه الي صدري بفضل الله وحده وكنت سببا - يزيدني ثقة في ان ما اقضيه من وقت في البرمجه لا يضيع هباء
ويكفي ان وجودك في الموضوع يعلي من شأن كاتبه
"أستاذي واخي الكريم "محمد يحيى" تقبل فائق احترامي
ولك جزيل الشكر بعد الله
(31-10-16, 02:08 PM)ممدوح كتب : وعليكم السلام ورحمة الله وبركاته
بارك الله فيك وفي أخينا محمد لثناءه وتوجيهاته
رأيت كود الدالة AddBorder ورأيته فقط لعمل إطار حول الصورة فتجبت لطوله واستخدامه حلقات For
المسألة أبسط من ذلك باستخدام gr.Clear جربي هذا الكود
كود :
Public Function AddBorderX(ByVal bm As Bitmap, ByVal borderColor As System.Drawing.Color, ByVal borderWidthInPixels As Integer) As Bitmap
Dim newBitmap As New Bitmap(bm.Width + (borderWidthInPixels * 2), bm.Height + (borderWidthInPixels * 2))
Dim gr As System.Drawing.Graphics = Graphics.FromImage(newBitmap)
gr.Clear(borderColor)
gr.DrawImage(bm, borderWidthInPixels, borderWidthInPixels, bm.Width, bm.Height)
Return newBitmap
End Function
وبارك الله فيك , اخي ممدوح
سلمت اناملك الذكيه - لقد فهمته فعدلته - فاصبح بسيطا -يسهل فهمه
وقد جربته وقام بنفس الوظيفه بالفعل
فشكرا جزيلا لك
اتمني ان تكون مشاركتي إثراء للموضوع وليست إعسار له
|