سؤال عن الريورس (كيفية استخراج ملف من نوع bitmap - سعود - 15-03-15
السلام عليكم
اخواني الاعزاء لقد اطلعت على الروابط التي تشرح التعامل مع الريسورس وتوصلت الى هذه الدالة:
كود :
Public Function ResourcesFiles() As List(Of String)
Dim _List As New List(Of String)
Dim ResourceSet As System.Resources.ResourceSet = My.Resources.ResourceManager.GetResourceSet(Globalization.CultureInfo.CurrentCulture, True, True)
For Each Dict As DictionaryEntry In ResourceSet.OfType(Of Object)()
_List.Add(Dict.Key)
Next
Return _List
End Function
طبعا طريقة استخراج الملف الذي يتم حفظه بصيغة byte بسيطة
وايضا الاخرى بسيطة عن طريق
كود :
My.Resources.mypic.Save("")
لكن كيف ادور على كافة الملفات بالمصدر واستخرج كل ملف بما يناسبه
محاولتي هذه
كود :
For Each itm In ResourcesFiles()
Dim GT = Path.GetExtension(My.Resources.ResourceManager.GetObject(itm).ToString)
Dim m() As Byte = Nothing
If GT.ToString = ".Bitmap" Then
Dim f As Bitmap = My.Resources.ResourceManager.GetObject(itm)
Else
m = My.Computer.FileSystem.ReadAllBytes(My.Resources.ResourceManager.GetObject(itm))
End If
Dim x As String = ""
If GT.ToString = ".Bitmap" Then
x = ".png"
Else
x = ".mp4"
End If
My.Computer.FileSystem.WriteAllBytes("C:\Users\saud\Desktop\fff\" & itm & x, m, False)
Next
اضف للريسورس صورة وملف فيديو بتنسيق مثلا mp4
الجزئية الخاصة بحفظ bitmap ناقصة لم اتوصل لحل
كود :
For Each itm In ResourcesFiles()
Dim GT = Path.GetExtension(My.Resources.ResourceManager.GetObject(itm).ToString)
If GT.ToString = ".Bitmap" Then
Dim pic As New PictureBox
pic.Image = My.Resources.ResourceManager.GetObject(itm)
pic.Image.Save("C:\Users\saud\Desktop\fff\" & itm & ".png")
Else
Dim m() As Byte = My.Resources.ResourceManager.GetObject(itm)
My.Computer.FileSystem.WriteAllBytes("C:\Users\saud\Desktop\fff\" & itm & ".mp4", m, False)
End If
Next
تم الحل
بالنسبة للصور كما تعلمون عدة انواع والكود الموجود يعيد امتداد .bitmap لاي صورة فكيف افرق بينهن؟؟؟
RE: سؤال عن الريورس (كيفية استخراج ملف من نوع bitmap - ameerah - 16-03-15
تقدر تستفيد من هذا الموضوع لتحديد نوع الصور
Check the file format of an Image
بعد الاستفادة من هذا الموضوع وإجراء بعض التعديلات
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim folder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\fff\"
If Not IO.Directory.Exists(folder) Then IO.Directory.CreateDirectory(folder)
For Each itm In ResourcesFiles()
If IO.Path.GetExtension(My.Resources.ResourceManager.GetObject(itm).ToString) = ".Bitmap" Then
Dim frm As ImageFormat = GetImageFormat(My.Resources.ResourceManager.GetObject(itm))
My.Resources.ResourceManager.GetObject(itm).Save(folder & itm & "." & frm.ToString, frm)
Else
Dim m() As Byte = My.Resources.ResourceManager.GetObject(itm)
My.Computer.FileSystem.WriteAllBytes(folder & itm & ".mp4", m, False)
End If
Next
End Sub
Public Function ResourcesFiles() As List(Of String)
Dim _List As New List(Of String)
Dim ResourceSet As System.Resources.ResourceSet
ResourceSet = My.Resources.ResourceManager.GetResourceSet(Globalization.CultureInfo.CurrentCulture, True, True)
For Each Dict As DictionaryEntry In ResourceSet.OfType(Of Object)()
_List.Add(Dict.Key)
Next
Return _List
End Function
Private Function GetImageFormat(ByVal img As Image) As ImageFormat
If img.RawFormat.Guid = ImageFormat.Bmp.Guid Then Return ImageFormat.Bmp
If img.RawFormat.Guid = ImageFormat.Gif.Guid Then Return ImageFormat.Gif
If img.RawFormat.Guid = ImageFormat.Jpeg.Guid Then Return ImageFormat.Jpeg
If img.RawFormat.Guid = ImageFormat.Png.Guid Then Return ImageFormat.Png
If img.RawFormat.Guid = ImageFormat.Tiff.Guid Then Return ImageFormat.Tiff
If img.RawFormat.Guid = ImageFormat.Icon.Guid Then Return ImageFormat.Icon
End Function
|