Get a picture from a frame

21 ביולי 2010

תגיות:
2 תגובות


 



איך ניתן לקבל תמונה של frame מתוך סרט.


 

נשתמש ב – DirectShowLib-2005.dll,

 

הורידו את ה – class Video מכאן. (למעשה העתקתי את הקוד הזה לפני זמן רב מאתר מסויים שלצערי אני לא מוצא אותו כרגע – במידה ואמצא את הקוד אתן קרדיט כמובן).

 

השימוש בו הוא מאוד פשוט.

 



public byte[] GetFrame(string fileName, double seconds, int width, int height)


{


    try


    {


        Video v = new Video(fileName);


        using (MemoryStream stream = new MemoryStream())


        {


            v.GetBitmap(seconds, width, height).Save(stream, ImageFormat.Jpeg);


            var data = new byte[stream.Length];


            stream.Seek(0, SeekOrigin.Begin);


            var count = stream.Read(data, 0, data.Length);


 


            return data;


        }


    }


    catch


    {


        // return default picture


        return new byte[0];


    }


}

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. ליאור28 במאי 2012 ב 23:05

    נתקלתי בבעיה שלא הצלחתי לפתור. כשאני מוסיף את הDLL אני מקבל הודעת שגיאה בזמן ריצה –
    Could not load file or assembly 'DirectShowLib' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    למרות שיש לי REFERENCE.
    יש למישהו רעיון איך פותרים את זה?

    הגב
  2. Shlomo29 במאי 2012 ב 21:09

    תנסה לוודא במאפיינים של הפרוייקט שה – target framework שלך הוא framework 4 ולא client profile

    הגב