您现在的位置是:首页 > 世界杯 >正文

大庄家 (关于大庄家 玩法)

发布时间:2022-11-23 09:38:03admin来源:世界杯

导读 基本支持所有YUV方面的转换. 不过全部是exe方式的, 如果你打开win32目录的话,支持vs2003和vs2005 ,也支持其他c++编辑器 如果不会c,那就...

基本支持所有YUV方面的转换. 不过全部是exe方式的, 如果你打开win32目录的话,支持vs2003和vs2005 ,也支持其他c++编辑器 如果不会c,那就用下面的方法弄就行了. 呵呵 .

我找到了一个c写的exe ,但是c的水平我实在是不敢去修改那个源码,所以我干脆就调用这个dll,在c#里建立了下面这个类, 然后调用 Y2b.exe 来转换, 而且不会显示出来那个黑屏.要知道怎么回事,就看代码吧!呵呵. using System;using System.Collections.Generic;using System.Text;using System.Diagnostics;using System.Drawing;using System.IO;namespace JXImage{public class YUV2BMP{///

/// 检查程序配置是否正常, 比如exe路径,图片文件夹等. 一般情况下设置了路径和图片文件路径以及图片后,应该使用属性取得是否可以执行命令. /// public bool CanUse{get{if (System.IO.File.Exists(System.Windows.Forms.Application.StartupPath + //Y2B.exe) ) {return true;}return false;}}private string bmpfile = null;/// /// BMP文件名, 在成功执行转换后可以用此获得文件路径.. /// ///返回文件名public string GetBmpFileName(){return bmpfile;}/// /// BMP数据流,成功转换后可以从此获得流 . /// ///数据流形式的BMPpublic MemoryStream GetBmpFileStream(){try{return new MemoryStream(System.IO.File.ReadAllBytes(bmpfile));}catch (Exception){return null;}}/// /// Image 成功转换后可以用此来获得文件. /// ///返回一个图片public Image GetBmp(){try{return Image.FromFile(bmpfile);}catch (Exception){return null;}}/// /// YUV转BMP/// ///YUV文件名///返回是否成功public bool YUVtoBMP(string yuvfilename){ if (CanUse){string ret = Execute(yuvfilename);if (ret.IndexOf(OK)>=0)//从0字符开始会有个OK{if (System.IO.File.Exists(yuvfilename.Replace(.yuv, .bmp))){bmpfile = yuvfilename.Replace(.yuv, .bmp);return true;}}}return false;}/// /// 执行DOS命令. /// ///命令///返回执行结果public static string Execute(string yuvfilename){int milliseconds = 2 * 1000;//两秒 string output = ; //输出字符串if (yuvfilename != null && yuvfilename != ){Process process = new Process(); //创建进程对象ProcessStartInfo startInfo = new ProcessStartInfo();startInfo.FileName =System.Windows.Forms.Application.StartupPath +//Y2B.exe ; //设定需要执行的命令startInfo.Arguments = /h352 /v288 /+yuvfilename+/ / +yuvfilename.Replace(.yuv,.bmp); //设定参数,其中的“/C”表示执行完命令后马上退出startInfo.UseShellExecute = false; //不使用系统外壳程序启动startInfo.RedirectStandardInput = false; //不重定向输入startInfo.RedirectStandardOutput = true; //重定向输出startInfo.CreateNoWindow = true; //不创建窗口process.StartInfo = startInfo;try{if (process.Start()) //开始进程{if (milliseconds == 0)process.WaitForExit(); //这里无限等待进程结束elseprocess.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒output = process.StandardOutput.ReadToEnd();//读取进程的输出}}catch{}finally{if (process != null)process.Close();}return output;}return null;}}}

1、读取akiyo_qcif.yuv YUV420文件,按帧读取,转RGB,并存储到BMP文件。 2、暂时实现读取一帧并存储一张BMP图片。 若要读取YUV序列,写成循环方式即可。 3、生成的BMP文件还有一点小问题:图像的倒立的,而且红色偏多。 YUV是qcif分辨率。 估计是YUV到RGB的计算公式有点问题。解决中。。。。 图像倒立问题已经解决。红色不知道是不是公式变换和RGB数值区间限制的时候产生的。估计和UV的差值方式也有关系。 红色的问题已经解决,采用的变换公式不正确。 但是还是有一些横纹,不知道是怎么回事。 .

本程序是由其他程序修改而来,为了避免麻烦,对其中一些没有用的地方并没有删除,但是这样不会影响使用。

大庄家

标签:大庄家

上一篇
下一篇