تمت الإجابة تشفير صورة معروضه Picturebox1 ب Base64

تم تحميل الصفحة في 1,9731486 ثانية
تشفير صورة معروضه Picturebox1 ب Base64
الحالة
مغلق و غير مفتوح للمزيد من الردود.

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,771
الإعجابات
1,539
النقاط
123
الإقامة
iraq
سلام عليكم شباب
عندي صوره معروضه بPicturebox1
اريد احولها لبايتات باستخدام Base64
جربت هكذا ولم ينفع

كود:
  Dim pic As String = PictureBox1.Image.ToString()
            Dim pi As String = Convert.ToBase64String(File.ReadAllBytes(pic))

وطلب ثاني زغير بعد ارجع الbase64 الى صوره
يعني بايتات الصوره ارجعها صوره برمجيا
 
إنضم
8 سبتمبر 2013
المشاركات
7,964
الإعجابات
11,889
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
طريقتك غلط اخي احمد
هذه ترجعلك الدالة يعني اتوقع تلاقي قيمة الـString تساوي Picutebox.Image()
على كل حال اخي لازم اول شي تقراها As Byte[]
و بعدين ترجعها بواسطة MemoryStream()
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,771
الإعجابات
1,539
النقاط
123
الإقامة
iraq
طريقتك غلط اخي احمد
هذه ترجعلك الدالة يعني اتوقع تلاقي قيمة الـString تساوي Picutebox.Image()
على كل حال اخي لازم اول شي تقراها As Byte[]
و بعدين ترجعها بواسطة MemoryStream()
اعرف انها غلط وطرحتها حتى احد يعدل عليها ويصححها
بس حتى يشوفو محاولتي ويصير عجهم تصور عالموضوع
 
إنضم
21 أغسطس 2017
المشاركات
169
الإعجابات
94
النقاط
28
العمر
20
الإقامة
Egy
''Converts Base64 Encoded String to Image
Private Function GetImageFromBase64(ByVal Base64String) As Bitmap
Dim fileBytes As Byte()
Dim streamImage As Bitmap

Try

If String.Empty <> Base64String Then''Checking The Base64 string validity

fileBytes = Convert.FromBase64String(Base64String) ''Converting Base64 string to Byte Array

Using ms As New MemoryStream(fileBytes) ''Copying Byte Array to Memory Stream

streamImage = Image.FromStream(ms) ''Constructing Image from Memory Stream

If Not IsNothing(streamImage) Then

If Not Directory.Exists("c:\Base64ImageViwer") Then
Directory.CreateDirectory("c:\Base64ImageViwer") ''Create a Temp Path for Saving
End If

streamImage.Save("c:\Base64ImageViwer\TempImg.jpg",_ ''Save the Image file
System.Drawing.Imaging.ImageFormat.Jpeg)
txtfilename.Text = "c:\Base64ImageViwer\TempImg.jpg" '' Assiging Textbox saved location

End If

End Using

End If

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return streamImage ''Returning Image

End Function

___________________

Private Function ConvertImageToBase64(ImageInput As Image) As String

Dim Base64Op As String = String.Empty
Try
Dim ms As MemoryStream = New MemoryStream()

ImageInput.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)''Saving Image to Memory stream

Base64Op = Convert.ToBase64String(ms.ToArray()) ''Creating Base64 String from memory stream

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return Base64Op ''Returning Base64 Encoded String

End Function
 
إنضم
8 سبتمبر 2013
المشاركات
7,964
الإعجابات
11,889
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
''Converts Base64 Encoded String to Image
Private Function GetImageFromBase64(ByVal Base64String) As Bitmap
Dim fileBytes As Byte()
Dim streamImage As Bitmap

Try

If String.Empty <> Base64String Then''Checking The Base64 string validity

fileBytes = Convert.FromBase64String(Base64String) ''Converting Base64 string to Byte Array

Using ms As New MemoryStream(fileBytes) ''Copying Byte Array to Memory Stream

streamImage = Image.FromStream(ms) ''Constructing Image from Memory Stream

If Not IsNothing(streamImage) Then

If Not Directory.Exists("c:\Base64ImageViwer") Then
Directory.CreateDirectory("c:\Base64ImageViwer") ''Create a Temp Path for Saving
End If

streamImage.Save("c:\Base64ImageViwer\TempImg.jpg",_ ''Save the Image file
System.Drawing.Imaging.ImageFormat.Jpeg)
txtfilename.Text = "c:\Base64ImageViwer\TempImg.jpg" '' Assiging Textbox saved location

End If

End Using

End If

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return streamImage ''Returning Image

End Function

___________________

Private Function ConvertImageToBase64(ImageInput As Image) As String

Dim Base64Op As String = String.Empty
Try
Dim ms As MemoryStream = New MemoryStream()

ImageInput.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)''Saving Image to Memory stream

Base64Op = Convert.ToBase64String(ms.ToArray()) ''Creating Base64 String from memory stream

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return Base64Op ''Returning Base64 Encoded String

End Function
اكره النسخ .. لكن الحل اظنه صحيح
 
إنضم
8 سبتمبر 2013
المشاركات
7,964
الإعجابات
11,889
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
أخي انا لا اريد افضل اجابة فقط اريد افادته سواء نسخ ام لا
♥ ما اختلفنا .. انسخ غوغل كله و اقول اريد الافادة ايضاً ههه
انت ارفقت برنامج كامل اخي منسوخ هذا الي كرهته مش اكثر ..
انما الحل موجود في سطرين فقط من الاسطر هذه كلها

احيي فيك حب الافادة ♥
 
إنضم
21 أغسطس 2017
المشاركات
169
الإعجابات
94
النقاط
28
العمر
20
الإقامة
Egy
♥ ما اختلفنا .. انسخ غوغل كله و اقول اريد الافادة ايضاً ههه
انت ارفقت برنامج كامل اخي منسوخ هذا الي كرهته مش اكثر ..
انما الحل موجود في سطرين فقط من الاسطر هذه كلها

احيي فيك حب الافادة ♥
مشكور أخي علي التحيه ♥♥
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,771
الإعجابات
1,539
النقاط
123
الإقامة
iraq
''Converts Base64 Encoded String to Image
Private Function GetImageFromBase64(ByVal Base64String) As Bitmap
Dim fileBytes As Byte()
Dim streamImage As Bitmap

Try

If String.Empty <> Base64String Then''Checking The Base64 string validity

fileBytes = Convert.FromBase64String(Base64String) ''Converting Base64 string to Byte Array

Using ms As New MemoryStream(fileBytes) ''Copying Byte Array to Memory Stream

streamImage = Image.FromStream(ms) ''Constructing Image from Memory Stream

If Not IsNothing(streamImage) Then

If Not Directory.Exists("c:\Base64ImageViwer") Then
Directory.CreateDirectory("c:\Base64ImageViwer") ''Create a Temp Path for Saving
End If

streamImage.Save("c:\Base64ImageViwer\TempImg.jpg",_ ''Save the Image file
System.Drawing.Imaging.ImageFormat.Jpeg)
txtfilename.Text = "c:\Base64ImageViwer\TempImg.jpg" '' Assiging Textbox saved location

End If

End Using

End If

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return streamImage ''Returning Image

End Function

___________________

Private Function ConvertImageToBase64(ImageInput As Image) As String

Dim Base64Op As String = String.Empty
Try
Dim ms As MemoryStream = New MemoryStream()

ImageInput.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)''Saving Image to Memory stream

Base64Op = Convert.ToBase64String(ms.ToArray()) ''Creating Base64 String from memory stream

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

Return Base64Op ''Returning Base64 Encoded String

End Function
 

Abufahmi

مُميّز نُقطة لُغات البَرمَجة
rankrank
إنضم
23 سبتمبر 2013
المشاركات
265
الإعجابات
408
النقاط
63
الإقامة
Jordan
الموضوع بس بحاجة لتفهم ال method Base64
عندما تريد تحويل اي نص الي Base64 فان تلميح الكودر يقول لك ان الميثود من نوعية الستريج
وانه يقبل الباراميتر من نوعية byte
لذا فان اول عمل يجب ان يتم تحويل الصورة بداخل picturebox الي byte
لذا راح نستعمل هذا فنكشن التحويل عن طريق imageConverter

كود:
 Private Shared Function ImageToByte(img As Image) As Byte()
        Dim imageConverter As New ImageConverter()
        Dim imageByte As Byte() = CType(imageConverter.ConvertTo(img, GetType(Byte())), Byte())
        Return imageByte
    End Function
نعلن عن متغير جديد من نوعية بايت وقيمته تساوي الفنكشن السابق والباراميتر طبعا راح يكون الصورة
كود:
Dim imgByte As Byte() = ImageToByte(pictureBox1.Image)
وصلنا لمتغانا وهو قيمة البايت الخاص بالصورة
كود:
 Dim strBase64 As String = Convert.ToBase64String(imgByte)
        TxQuery.Text = strBase64


مرحلة الارجاع الي قيمة الصورة
بعد فهم تسلسل الكود السابق علينا الان ارجاع تحويل Base64 الي byte مجددا
كود:
 Dim strFromBase64 As Byte() = Convert.FromBase64String(TxQuery.Text)
وبعد تحويله الي بايت نريد قيمة الصورة من البايت عن طريق ميموري ستريم
كود:
  Public Function byteToImage(byteImage As Byte()) As Image
        Dim ms As New MemoryStream(byteImage)
        Dim img As Image = Image.FromStream(ms)
        Return img
    End Function
ثم اصبحت قيمة الصورة في pictureBox2
كود:
pictureBox2.Image = byteToImage(strFromBase64)
وهذا كل شيء
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,771
الإعجابات
1,539
النقاط
123
الإقامة
iraq
الموضوع بس بحاجة لتفهم ال method Base64
عندما تريد تحويل اي نص الي Base64 فان تلميح الكودر يقول لك ان الميثود من نوعية الستريج
وانه يقبل الباراميتر من نوعية byte
لذا فان اول عمل يجب ان يتم تحويل الصورة بداخل picturebox الي byte
لذا راح نستعمل هذا فنكشن التحويل عن طريق imageConverter

كود:
 Private Shared Function ImageToByte(img As Image) As Byte()
        Dim imageConverter As New ImageConverter()
        Dim imageByte As Byte() = CType(imageConverter.ConvertTo(img, GetType(Byte())), Byte())
        Return imageByte
    End Function
نعلن عن متغير جديد من نوعية بايت وقيمته تساوي الفنكشن السابق والباراميتر طبعا راح يكون الصورة
كود:
Dim imgByte As Byte() = ImageToByte(pictureBox1.Image)
وصلنا لمتغانا وهو قيمة البايت الخاص بالصورة
كود:
 Dim strBase64 As String = Convert.ToBase64String(imgByte)
        TxQuery.Text = strBase64


مرحلة الارجاع الي قيمة الصورة
بعد فهم تسلسل الكود السابق علينا الان ارجاع تحويل Base64 الي byte مجددا
كود:
 Dim strFromBase64 As Byte() = Convert.FromBase64String(TxQuery.Text)
وبعد تحويله الي بايت نريد قيمة الصورة من البايت عن طريق ميموري ستريم
كود:
  Public Function byteToImage(byteImage As Byte()) As Image
        Dim ms As New MemoryStream(byteImage)
        Dim img As Image = Image.FromStream(ms)
        Return img
    End Function
ثم اصبحت قيمة الصورة في pictureBox2
كود:
pictureBox2.Image = byteToImage(strFromBase64)
وهذا كل شيء
ماشالله عليك حبيبي توضيح واضح وسلس ومتعوب عليه
الصراحه اني تركت التشفير والاشياء المرتبطه به من فتره طويله لذلك اصبحت بعيد عن اي شيء متعلق فيه
لو في تقييم اكثر كان عطيتك تستاهل اكثر بعد
 

Abufahmi

مُميّز نُقطة لُغات البَرمَجة
rankrank
إنضم
23 سبتمبر 2013
المشاركات
265
الإعجابات
408
النقاط
63
الإقامة
Jordan
الله يعزك ويبارك فيك اخي الحبيب
انا اكره الخوارزميات ولكن للاسف لا غني عنها لحفظ حقوق برامجي لذا فانا مضطر لاستعمالها
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل