Tag:

需要在C#应用程序中从摄像头捕获video流

我需要构建一个满足以下要求的应用程序。 它可以是Windows客户端,Silverlight客户端或WPF客户端。 屏幕将在2个独立的窗口中显示来自2个独立摄像头的video流 需要具有PVR类型的function…… 2.1显示实时流2.2暂停和播放前30秒的video 我正在尝试使用我拥有的C#应用​​程序开发资源但是我没有任何video捕获经验。 我可以看一下图书馆方面的帮助或最好的方法。 谢谢Cronline

将音频流输出到麦克风

嘿大家。 有没有办法从我的程序输出音频并将该流重定向到系统的麦克风输入’层’? 我知道这可能需要一些低级别的电话被’Pinvoked’,但有没有任何文章可以帮助我。 例如,如果我要将我的应用程序的输出音频流运行到Window的Sound Recorder程序中,它会认为音频来自麦克风并记录下来。 我不想录制流,只是将其输出到设备的micrphone输入。 谢谢你的任何想法。

谁应该负责关闭流

我正在编写一个创建文件“目录”的应用程序,可以将其归结为其他元数据文件,例如附件和缩略图。 我正在尝试将接口抽象到目录,以使目录的使用者不需要知道用于存储文件的基础文件系统。 所以我创建了一个名为IFileSystemAdaptor的接口,如下所示。 public interface IFileSystemAdaptor:IDisposable { void WriteFileData(string fileName, Stream data); Stream ReadFileData(string filename); void DeleteFileData(string filename); void ClearAllData(); void WriteMetaFileData(string filename, string path, Stream data); Stream ReadMetaFileData(string filename, string path); void DeleteMetaFileData(string filename, string path); void ClearMetaFilesData(string filename); } 基本上我的IFileSystemAdaptor接口公开了一个平面文件列表,也可以与其他元数据文件相关联。 正如您所看到的,我正在使用对通用Stream对象的引用来将接口抽象为文件的数据。 这样,Catalog的一个实现可以从硬盘返回文件,而另一个实现可以从Web服务器返回数据。 现在,我正在试图弄清楚如何防止我的程序离开流。 成员应关闭流的是否有经验法则? 如果流的消费者关闭它,或者原始创建流的成员是否应该负责关闭它。

如何在大型稀疏文件上创建快速有效的文件流写入

我有一个应用程序,可以在多个段中写入大文件。 我使用FileStream.Seek来定位每个wirte。 看来,当我在稀疏文件中的深位置调用FileStream.Write时,write会在所有前面的字节上触发“回填”操作(写入0),这很慢。 有没有更有效的方法来处理这种情况? 以下代码演示了该问题。 初始写入在我的机器上大约需要370 MS。 public void WriteToStream() { DateTime dt; using (FileStream fs = File.Create(“C:\\testfile.file”)) { fs.SetLength(1024 * 1024 * 100); fs.Seek(-1, SeekOrigin.End); dt = DateTime.Now; fs.WriteByte(255); } Console.WriteLine(@”WRITE MS: ” + DateTime.Now.Subtract(dt).TotalMilliseconds.ToString()); }

将图像作为二进制数据写入文本文件C#

我需要创建一个文件,将图像作为文本嵌入到某些记录中。 我把图像写成文本时遇到了一些麻烦。 我正在做的是从SQL数据库(图像类型)收集图像作为字节数组然后我通过遍历每个字节并将该字节的ASCII等效写入文件来将该图像写入文本文件。 在我将该图像写入文本文件之前,我必须将其转换为CCITT4格式的TIFF(以前是jpeg)。 为了仔细检查这是否正确完成,我还将流保存为TIFF并在“AsTiffTagViewer”中查看,这表明压缩是正确的。 我能够在适当的观众中查看tiff; 但是,从文件中收集文本时,我无法查看图像。 这是代码: byte[] frontImage = (byte[])imageReader[“front_image”]; MemoryStream frontMS = new MemoryStream(frontImage); Image front = Image.FromStream(frontMS); Bitmap frontBitmap = new Bitmap(front); Bitmap bwFront = ConvertToBitonal(frontBitmap); bwFront.SetResolution(200, 200); MemoryStream newFrontMS = new MemoryStream(); bwFront.Save(newFrontMS, ici, ep); bwFront.Save(“c:\\Users\\aarong\\Desktop\\C#DepositFiles\\” + checkReader[“image_id”].ToString() + “f.tiff”, ici, ep); frontImage = newFrontMS.ToArray(); String frontBinary = toASCII(frontImage); private […]

带有DeleteOnClose文件选项的FileStream

在我的项目中,我必须在USB设备中创建一些临时文件,我想在Closing上删除它。 所以我使用了类似的代码 this.fcommandHandler = new FileStream(TempFileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite, 512, FileOptions.DeleteOnClose); 它工作正常。 但问题是我想再使用一个FileOption,比如No buffering。 private const FileOptions FILE_FLAG_NO_BUFFERING = (FileOptions)0x20000000; this.fcommandHandler = new FileStream(TempFileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite, 512, FileOptions.DeleteOnClose & FILE_FLAG_NO_BUFFERING); 但它不会在关闭后删除文件。 请帮忙。

在C#中使用FTP上传带有编码的文件

以下代码适用于上传文本文件,但无法上传JPEG文件(不完全 – 文件名很好但图像已损坏): private void up(string sourceFile, string targetFile) { try { string ftpServerIP = ConfigurationManager.AppSettings[“ftpIP”]; string ftpUserID = ConfigurationManager.AppSettings[“ftpUser”]; string ftpPassword = ConfigurationManager.AppSettings[“ftpPass”]; //string ftpURI = “”; string filename = “ftp://” + ftpServerIP + “//” + targetFile; FtpWebRequest ftpReq = (FtpWebRequest)WebRequest.Create(filename); ftpReq.Method = WebRequestMethods.Ftp.UploadFile; ftpReq.Credentials = new NetworkCredential(ftpUserID, ftpPassword); StreamReader stream = new StreamReader(sourceFile); […]

如何使用Stream获取图像大小(wxh)

我有这个代码我用来读取上传的文件,但我需要获得图像的大小,但不知道我可以使用什么代码 HttpFileCollection collection = _context.Request.Files; for (int i = 0; i < collection.Count; i++) { HttpPostedFile postedFile = collection[i]; Stream fileStream = postedFile.InputStream; fileStream.Position = 0; byte[] fileContents = new byte[postedFile.ContentLength]; fileStream.Read(fileContents, 0, postedFile.ContentLength); 我可以正确地获取文件但是如何检查它的图像(宽度和大小)先生?

如何将大文件(> 1 GB)的编码转换为Windows 1252而不会出现内存不足exception?

考虑: public static void ConvertFileToUnicode1252(string filePath, Encoding srcEncoding) { try { StreamReader fileStream = new StreamReader(filePath); Encoding targetEncoding = Encoding.GetEncoding(1252); string fileContent = fileStream.ReadToEnd(); fileStream.Close(); // Saving file as ANSI 1252 Byte[] srcBytes = srcEncoding.GetBytes(fileContent); Byte[] ansiBytes = Encoding.Convert(srcEncoding, targetEncoding, srcBytes); string ansiContent = targetEncoding.GetString(ansiBytes); // Now writes contents to file again StreamWriter ansiWriter = […]

从流中不断读取?

我有一个Stream对象偶尔会获得一些数据,但是间隔时间不可预测。 流上出现的消息是明确定义的,并提前声明其有效负载的大小(大小是每个消息的前两个字节中包含的16位整数)。 我想要一个StreamWatcher类来检测Stream何时有一些数据。 一旦它发生,我想要引发一个事件,以便订阅的StreamProcessor实例可以处理新消息。 这可以通过C#事件完成,而无需直接使用Threads吗? 看起来它应该是直截了当的,但我无法完全理解设计这个问题的正确方法。