تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال عن الريورس (كيفية استخراج ملف من نوع bitmap
#1
السلام عليكم
اخواني الاعزاء لقد اطلعت على الروابط التي تشرح التعامل مع الريسورس وتوصلت الى هذه الدالة:
كود :
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

تم الحلSmile

بالنسبة للصور كما تعلمون عدة انواع والكود الموجود يعيد امتداد .bitmap لاي صورة فكيف افرق بينهن؟؟؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#2
تقدر تستفيد من هذا الموضوع لتحديد نوع الصور
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
الرد }}}
تم الشكر بواسطة: سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال عن الاسمبلي و النيم سبيس justforit 0 105 07-12-25, 12:28 AM
آخر رد: justforit
  فائدة بخصوص التعامل مع علامات التنصيص مع {سؤال} justforit 4 277 02-11-25, 11:19 PM
آخر رد: justforit
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 851 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 747 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,004 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,244 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  [نقاش] سؤال MetoDas 2 1,491 20-04-25, 10:21 PM
آخر رد: Kamil
  [سؤال] سؤال ترددت قبل نشرة:طابعة الباركود لماذا تطبع أكثر من ليبل فارغ قبل السليم dr.programming 1 513 20-04-25, 09:26 PM
آخر رد: Kamil
  سؤال لو سمحتم احبتى فى الله خالد كامل1 4 809 09-02-25, 12:02 AM
آخر رد: princelovelorn
  سؤال واستفسار خالد كامل1 1 404 04-02-25, 09:31 PM
آخر رد: aliday03

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم