在 C# 中使用 AForge.Video.FFMPEG 向图像添加文本
Posted
技术标签:
【中文标题】在 C# 中使用 AForge.Video.FFMPEG 向图像添加文本【英文标题】:Add text to image using AForge.Video.FFMEG in C# 【发布时间】:2017-07-08 06:23:28 【问题描述】:使用 AForge.Video.FFMPEG
我可以从图像创建视频。
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】:私有位图写入字符串(位图 bmp)
Bitmap tempBitmap = new Bitmap(bmp.Width, bmp.Height); << create new
..draw on copy..
return bmp; <<< return original
似乎是错误的。
【讨论】:
以上是关于在 C# 中使用 AForge.Video.FFMPEG 向图像添加文本的主要内容,如果未能解决你的问题,请参考以下文章