Example #1
0
        /// <param name="secStart">needs to be in seconds to figure out which thumb</param>
        /// <param name="len">needs to be in seconds to figure out which thumb</param>
        private void DrawClipBitmaps(
            Graphics g,
            VidkaProj proj,
            VidkaFileMapping projMapping,
            VidkaClipVideo vclip,
            int x1, int y1, int clipw, int clipvh,
            double secStart, double len)
        {
            string thumbsFile = projMapping.AddGetThumbnailFilename(vclip.FileName);
            //if (!File.Exists(thumbsFile))
            //	return;
            //Image origThumb = System.Drawing.Image.FromFile(thumbsFile, true);
            //var bmpThumb = new Bitmap(origThumb);
            var heightForThumbs = Math.Max(clipvh - 2 * THUMB_MARGIN_Y, ThumbnailTest.ThumbH);
            var thumbPrefWidth  = heightForThumbs * ThumbnailTest.ThumbW / ThumbnailTest.ThumbH;
            var howManyThumbs   = (clipw - THUMB_MARGIN) / (thumbPrefWidth + THUMB_MARGIN);

            if (howManyThumbs == 0)
            {
                howManyThumbs = 1;
            }
            var xCenteringOffset = (clipw - howManyThumbs * (thumbPrefWidth + THUMB_MARGIN)) / 2;

            for (int i = 0; i < howManyThumbs; i++)
            {
                //DrawVideoThumbnail(
                //	g: g,
                //	bmpAll: bmpThumb,
                //	timeSec: secStart + (i + 0.5) * len / howManyThumbs,
                //	xCenter: x1 + xCenteringOffset + i * (thumbPrefWidth + THUMB_MARGIN) + (thumbPrefWidth + THUMB_MARGIN) / 2,
                //	yCenter: y1 + clipvh / 2,
                //	preferredWidth: thumbPrefWidth,
                //	maxWidth: clipw);
                var timeSec    = secStart + (i + 0.5) * len / howManyThumbs;
                var imageIndex = (int)(timeSec / ThumbnailTest.ThumbIntervalSec);
                DrawVideoThumbnail(
                    g: g,
                    filenameAll: thumbsFile,
                    index: imageIndex,
                    xCenter: x1 + xCenteringOffset + i * (thumbPrefWidth + THUMB_MARGIN) + (thumbPrefWidth + THUMB_MARGIN) / 2,
                    yCenter: y1 + clipvh / 2,
                    preferredWidth: thumbPrefWidth,
                    maxWidth: clipw);
            }
            //bmpThumb.Dispose();
            //origThumb.Dispose();
        }
 public void SetStillFrame(string filename, double offsetSeconds)
 {
     if (this.filenameVideo != filename && fileMapping != null)
     {
         disposeOfOldBmpThumbs();
         this.filenameVideo = filename;
         var filenameThumbs = fileMapping.AddGetThumbnailFilename(filename);
         if (File.Exists(filenameThumbs))
         {
             bmpThumbs      = System.Drawing.Image.FromFile(filenameThumbs, true) as Bitmap;
             bmpThumbs_nRow = bmpThumbs.Width / ThumbnailTest.ThumbW;
             bmpThumbs_nCol = bmpThumbs.Height / ThumbnailTest.ThumbH;
         }
     }
     this.offsetSeconds = offsetSeconds;
     Invalidate();
 }