2017-07-08 73 views
0

使用AForge.Video.FFMPEG我可以从图像创建视频。使用C#中的AForge.Video.FFMEG将文本添加到图像#

 string[] files; 
     string folderPath = @"FolderPath"; 
     files = Directory.GetFiles(folderPath).OrderBy(c => c).ToArray(); 

     VideoFileWriter writer = new VideoFileWriter(); 
     writer.Open(@"C:folder\new.mp4", imageWidth, imageHeight, 10, VideoCodec.MPEG4); 
     for (int j = 0; j < files.Length; j++) 
     { 
      string fileName = files[j]; 
      BitmapSource imageBitMap = new BitmapImage(new Uri(fileName, UriKind.RelativeOrAbsolute)); 
      imageBitMap.Freeze(); 
      int stride = imageBitMap.PixelWidth * ((imageBitMap.Format.BitsPerPixel + 7)/8); 
      byte[] ImageInBits = new byte[imageBitMap.PixelWidth * imageBitMap.PixelHeight]; 
      imageBitMap.CopyPixels(ImageInBits, stride, 0); 

      Bitmap image = new Bitmap(imageWidth, imageHeight, stride, PixelFormat.Format8bppIndexed, Marshal.UnsafeAddrOfPinnedArrayElement(ImageInBits, 0)); 

      writer.WriteVideoFrame(image); 
      image.Dispose(); 
     } 

我试图用

private Bitmap WriteString(Bitmap bmp) 
    { 
     RectangleF rectf = new RectangleF(70, 90, 90, 50); 

     Bitmap tempBitmap = new Bitmap(bmp.Width, bmp.Height); 
     Graphics g = Graphics.FromImage(tempBitmap); 

     g.DrawImage(bmp, 0, 0); 
     g.SmoothingMode = SmoothingMode.AntiAlias; 
     g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
     g.PixelOffsetMode = PixelOffsetMode.HighQuality; 
     g.DrawString("yourText", new Font("Tahoma", 8), Brushes.Red, rectf); 
     g.Flush(); 

     return bmp; 
    } 

  Bitmap image = new Bitmap(imageWidth, imageHeight, stride, PixelFormat.Format8bppIndexed, Marshal.UnsafeAddrOfPinnedArrayElement(ImageInBits, 0)); 
      Bitmap outputBitmap=WriteString(image); 
      writer.WriteVideoFrame(outputBitmap); 

我怎么能写一个字符串到图像文本/字符串添加到输入图像?

在创建视频之前,有没有任何方法可以将字幕添加到AForge.Video.FFMEG中?

回答

1

私人位图WriteString(BMP位图){

Bitmap tempBitmap = new Bitmap(bmp.Width, bmp.Height); << create new  
    ..draw on copy.. 
    return bmp; <<< return original 
} 

似乎是错误的。

相关问题