yuv420转bmp在线工具

yuv420转bmp在线工具

版本:绿色版大小:26KB

类别: 图像处理 系统:WinAll, WinXP, Win7, Win8

立即下载
  • yuv420转bmp在线工具 绿色版0

yuv420转bmp工具免费版是一款方便用户进行yuv420 转bmp的便捷图像处理软件,让你能够快速的进行格式转换,能够方便用户能够更加清晰明确的观看图像,从而更好的查看图像,获得不错的使用效果,绿色资源网提供yuv420转bmp工具下载!

yuv420转bmp工具特色介绍

基本支持所有YUV方面的转换.不过全部是exe方式的, 如果你打开win32目录的话,支持vs2003和VS2005 ,也支持其他c++编辑器,如果不会c,那就用下面的方法弄就行了!本程序是由其他程序修改而来,为了避免麻烦,对其中一些没有用的地方并没有删除,但是这样不会影响使用。

yuv420转bmp工具

yuv420 转bmp的方法

我找到了一个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

{

/// <summary>

/// 检查程序配置是否正常, 比如exe路径,图片文件夹等. 一般情况下设置了路径和图片文件路径以及图片后,应该使用属性取得是否可以执行命令.

/// </summary>

public bool CanUse

{

get

{

if (System.IO.File.Exists(System.Windows.Forms.Application.StartupPath + "//Y2B.exe") )

{

return true;

}

return false;

}

}

private string bmpfile = null;

/// <summary>

/// bmp文件名, 在成功执行转换后可以用此获得文件路径..

/// </summary>

/// <returns>返回文件名</returns>

public string GetBmpFileName()

{

return bmpfile;

}

/// <summary>

/// BMP数据流,成功转换后可以从此获得流 .

/// </summary>

/// <returns>数据流形式的BMP </returns>

public MemoryStream GetBmpFileStream()

{

try

{

return new MemoryStream(System.IO.File.ReadAllBytes(bmpfile));

}

catch (Exception)

{

return null;

}

}

/// <summary>

/// Image 成功转换后可以用此来获得文件.

/// </summary>

/// <returns>返回一个图片</returns>

public Image GetBmp()

{

try

{

return Image.FromFile(bmpfile);

}

catch (Exception)

{

return null;

}

}

/// <summary>

/// YUV转BMP

/// </summary>

/// <param name="yuvfilename">YUV文件名</param>

/// <returns>返回是否成功</returns>

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;

}

/// <summary>

/// 执行DOS命令.

/// </summary>

/// <param name="canmand">命令</param>

/// <returns>返回执行结果 </returns>

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"); //设定参数,其中的&ldquo;/C&rdquo;表示执行完命令后马上退出

startInfo.UseShellExecute = false; //不使用系统外壳程序启动

startInfo.RedirectStandardInput = false; //不重定向输入

startInfo.RedirectStandardOutput = true; //重定向输出

startInfo.CreateNoWindow = true; //不创建窗口

process.StartInfo = startInfo;

try

{

if (process.Start()) //开始进程

{

if (milliseconds == 0)

process.WaitForExit(); //这里无限等待进程结束

else

process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒

output = process.StandardOutput.ReadToEnd();//读取进程的输出

}

}

catch

{

}

finally

{

if (process != null)

process.Close();

}

return output;

}

return null;

}

}

}

yuv420转bmp工具描述

1、读取akiyo_qcif.yuv YUV420文件,按帧读取,转RGB,并存储到BMP文件。

2、暂时实现读取一帧并存储一张BMP图片。若要读取YUV序列,写成循环方式即可。

3、生成的BMP文件还有一点小问题:图像的倒立的,而且红色偏多。

YUV是qcif分辨率。

红色的问题已经解决,采用的变换公式不正确。

但是还是有一些横纹,不知道是怎么回事。 .

估计是YUV到RGB的计算公式有点问题。

解决中图像倒立问题已经解决。

估计和UV的差值方式也有关系。

红色不知道是不是公式变换和RGB数值区间限制的时候产生的。

查看全部

更新时间:2017-06-01
网友评论
我要跟贴
取消
猜你喜欢
  • bmp格式转换器

bmp格式转换器更多>>

bmp格式转换器为用户提供了超强大的bmp图片格式转换,能够帮助用户轻松完成bmp图片格式的转换,轻松修改图片文件属性,让您能够将自己的图片放在多种模式下看,对于喜欢拍照的朋友来说这类软件是非常实用的。有需要的朋友就来绿色资源网下载使用吧!

同类推荐
热门精品
最新应用