gpt4 book ai didi

opencv - 如何在Windows Phone 8中写入文件(编码)修改后的相机框架

转载 作者:行者123 更新时间:2023-12-02 16:44:40 24 4
gpt4 key购买 nike

我已经在Windows Phone 8中自定义了相机应用程序。我需要在相机捕获的每个帧中添加水印图像,然后再录制到视频中。
我可以使用以下代码从预览中自定义每个帧:

int[] pixelData = new int[(int)(camera.PreviewResolution.Width * camera.PreviewResolution.Height)];

camera.GetPreviewBufferArgb32(pixelData);

return pixelData;


并将其写回预览。
我的问题是,当用户使用相机录制电影时,我可以在屏幕上显示帧时,我找不到WP8编码帧和音频以保存到文件的有效解决方案。
我已经尝试过opencv,libav等,但都没有成功,
如果有人能指出我正确的方向,将不胜感激。

最佳答案

您可以这样做。

private void GetCameraPicture_Click(object sender, RoutedEventArgs e)
{
Microsoft.Phone.Tasks.CameraCaptureTask cameraCaptureTask = new Microsoft.Phone.Tasks.CameraCaptureTask();
cameraCaptureTask.Completed += cct_Completed;
cameraCaptureTask.Show();
}

try
{
if (e.TaskResult == Microsoft.Phone.Tasks.TaskResult.OK)
{
var imageStream = e.ChosenPhoto;
var name = e.OriginalFileName;
using (MemoryStream mem = new MemoryStream())
{
TextBlock tb = new TextBlock() { Text = DateTime.Now.ToString("dd MMM yyyy, HH:mm"), Foreground = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)), FontSize = 40 };
BitmapImage finalImage = new BitmapImage();
finalImage.SetSource(imageStream);
WriteableBitmap wbFinal = new WriteableBitmap(finalImage);
wbFinal.Render(tb, null);
wbFinal.Invalidate();
wbFinal.SaveJpeg(mem, wbFinal.PixelWidth, wbFinal.PixelHeight, 0, 100);
mem.Seek(0, System.IO.SeekOrigin.Begin);
MediaLibrary lib = new MediaLibrary();
lib.SavePictureToCameraRoll("Copy" + name, mem.ToArray());
}
}
}
catch (Exception exp) { MessageBox.Show(exp.Message); }

希望对您有所帮助。

关于opencv - 如何在Windows Phone 8中写入文件(编码)修改后的相机框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com