06-01-17, 09:58 AM
(آخر تعديل لهذه المشاركة : 06-01-17, 10:16 AM {2} بواسطة silverlight.)
في الجزء الأول الموجود في اللينك التالي قمنا بتوضيح كيفية اخفاء حرف في صورة
الجزء الأول
و الخلاصة من الجزء الأول تنحصر في الدوال التالية التي من الممكن استخدامها لتحويل حرف الي صورة و العكس
خلاصة الجزء الأول:
و الكود التالي يوضح كيفية استخدام الدوال أعلاه
ملحوظة
أرجو أن لا ننسي جميعا أن الصور يمكن تحويلها هي أيضا الي بايت
أي أن الكود أعلاه يمكن تحويله الي بايت و حفظه بشكل ما في ملف او في قاعدة بيانات
الجزء الثاني:
في هذا الجزء من موضوع مقدمة إلي إخفاء المعلومات
سنوضح و بطريقة مبسطة كيف يمكن تحويل تكست او مجموعة من الحروف الي مجموعة من الصور ثم نوضح الكيفية التي من الممكن بها استرداد هذه الحروف مرة أخري من تلك الصور
بشكل عام هدفي من طرح هذا الموضوع هو توضيح كيف ومن مجرد فكرة بسيطة أن تخرج منها بأفكار أخري أهم و الفكرة سيتم كتابتها علي مراحل لتوضيح بعضا من الموضوعات التالية
1- حفظ المعلومات و حمايتها
2- حماية السورس كود
3- بناء الباركود و قرائته
4- تحويل الملفات الي أنماط مختلفة
5- بناء الفونت
6- بناء الصور المتحركة
7- حماية السيريال الخاص باي برنامج
تحويل الحروف الي صور
الخطوات التالية توضح كيفية تحويل مجموعة من الحروف الي مجموعة صور
1- تعريف الكلمة او الحروف
2 تعريف مصفوفة الصور
3- تحويل كل حرف موجود في التكست الي صورة و ذلك باستخدام الدوال التي كتبناها في الخلاصة أعلاه ثم نقوم بإضافة كل صورة الي مصفوفة الصور
وبهذا نكون حصلنا علي مجموعة صور تحتوي علي كل الحروف
تحويل الصور الي حروف مرة أخري
الخطوات التالية توضح ذلك
1- تعريف مصفوفة الحروف
2- قراءة كل صورة علي حده و تحويلها الي حرف ثم نضيفها الي مصفوفة الحروف
3- تحويل الحروف الي كلمة مرة أخري
من المؤكد انه يمكنكم تقليل حجم الكود لكن انا كتبته بهذا الاسلوب للتوضيح فقط
خلاصة المرحلة الثانية هي الدوال التالية التي يجب ان يتم استخدامها مع الدوال الخاصة بالمرحلة الأولي
,و الكود التالي يوضح كيفية استخدام الدوال أعلاه
الجزء الأول
و الخلاصة من الجزء الأول تنحصر في الدوال التالية التي من الممكن استخدامها لتحويل حرف الي صورة و العكس
خلاصة الجزء الأول:
PHP كود :
Private Function ConvertCharToBitmap(chr As Char, Optional w As Integer = 2, Optional h As Integer = 2) As Bitmap
Dim bmp As Bitmap = New Bitmap(w, h)
Using g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.FromArgb(Convert.ToByte(chr), 0, 0, 0))
End Using
Return bmp
End Function
Private Function ConvertBitmapToChar(bmp As Bitmap, Optional x As Integer = 1, Optional y As Integer = 1) As Char
Return CType(Convert.ToChar(bmp.GetPixel(x, y).A), Char)
End Function
PHP كود :
' تحويل الحرف الي صورة
Dim bmp As Bitmap = ConvertCharToBitmap("D"c)
' الحصول علي الحرف و إظهار الحرف بشكل ما
Me.Text = ConvertBitmapToChar(bmp).ToString
' إظهار الصورة بشكل ما
Me.BackgroundImage = bmp
ملحوظة
أرجو أن لا ننسي جميعا أن الصور يمكن تحويلها هي أيضا الي بايت
أي أن الكود أعلاه يمكن تحويله الي بايت و حفظه بشكل ما في ملف او في قاعدة بيانات
الجزء الثاني:
في هذا الجزء من موضوع مقدمة إلي إخفاء المعلومات
سنوضح و بطريقة مبسطة كيف يمكن تحويل تكست او مجموعة من الحروف الي مجموعة من الصور ثم نوضح الكيفية التي من الممكن بها استرداد هذه الحروف مرة أخري من تلك الصور
بشكل عام هدفي من طرح هذا الموضوع هو توضيح كيف ومن مجرد فكرة بسيطة أن تخرج منها بأفكار أخري أهم و الفكرة سيتم كتابتها علي مراحل لتوضيح بعضا من الموضوعات التالية
1- حفظ المعلومات و حمايتها
2- حماية السورس كود
3- بناء الباركود و قرائته
4- تحويل الملفات الي أنماط مختلفة
5- بناء الفونت
6- بناء الصور المتحركة
7- حماية السيريال الخاص باي برنامج
تحويل الحروف الي صور
الخطوات التالية توضح كيفية تحويل مجموعة من الحروف الي مجموعة صور
1- تعريف الكلمة او الحروف
PHP كود :
Dim s As String = "omar amin"
2 تعريف مصفوفة الصور
PHP كود :
Dim bitmaps As Bitmap() = New Bitmap(s.Length - 1) {}
3- تحويل كل حرف موجود في التكست الي صورة و ذلك باستخدام الدوال التي كتبناها في الخلاصة أعلاه ثم نقوم بإضافة كل صورة الي مصفوفة الصور
PHP كود :
For i As Integer = 0 To s.Length - 1
Dim c As Char = s(i)
bitmaps(i) = ConvertCharToBitmap(c)
Next
تحويل الصور الي حروف مرة أخري
الخطوات التالية توضح ذلك
1- تعريف مصفوفة الحروف
PHP كود :
Dim Chars As Char() = New Char(bitmaps.Length - 1) {}
2- قراءة كل صورة علي حده و تحويلها الي حرف ثم نضيفها الي مصفوفة الحروف
PHP كود :
For i As Integer = 0 To bitmaps.Length - 1
Dim c As Char = ConvertBitmapToChar(bitmaps(i))
Chars(i) = c
Next
3- تحويل الحروف الي كلمة مرة أخري
PHP كود :
Dim result As String = ""
For j As Integer = 0 To Chars.Length - 1
result += Chars(j)
Next
من المؤكد انه يمكنكم تقليل حجم الكود لكن انا كتبته بهذا الاسلوب للتوضيح فقط
خلاصة المرحلة الثانية هي الدوال التالية التي يجب ان يتم استخدامها مع الدوال الخاصة بالمرحلة الأولي
PHP كود :
Private Function ConvertBitmapsToChars(bitmaps As Bitmap()) As Char()
Dim Chars As Char() = New Char(bitmaps.Length - 1) {}
SyncLock Chars
For i As Integer = 0 To bitmaps.Length - 1
Dim c As Char = ConvertBitmapToChar(bitmaps(i))
Chars(i) = c
Next
End SyncLock
Return Chars
End Function
Private Function ConvertStringToBitmaps(s As String) As Bitmap()
Dim bitmaps As Bitmap() = New Bitmap(s.Length - 1) {}
SyncLock bitmaps
For i As Integer = 0 To s.Length - 1
Dim c As Char = s(i)
bitmaps(i) = ConvertCharToBitmap(c)
Next
End SyncLock
Return bitmaps
End Function
,و الكود التالي يوضح كيفية استخدام الدوال أعلاه
PHP كود :
Dim s As String = "omar amin"
Dim bitmaps As Bitmap() = ConvertStringToBitmaps(s)
Dim chars As Char() = ConvertBitmapsToChars(bitmaps)
Dim result As String = ""
For j As Integer = 0 To chars.Length - 1
result += chars(j)
Next
Me.Text = result