列表格式显示

热搜词:winrar    ftp   office   photoshop   输入法   ghost   win7  

05图形图像 - 分类

广告招商中......
联系方式!

图像处理 - 时间排序 更多...
    图像处理 - 点击排序 更多...
      图像处理 - 大小排序 更多...
        作者

         

        最近发布的软件 更多>>

        首页 >> 05图形图像>> 图像处理>>yuv420转bmp在线工具 发布者:admin >> 本人发布的更多软件

        广告招商中...... 联系方式!

        yuv420转bmp在线工具 

             
        软件厂家: 官方网站:
        大小: 语言:
        类型: 类别:
        更新时间: 运行环境:
        ;开始下载地址

        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数值区间限制的时候产生的。


        本页Html网址:/htmlsoft/21612.html

        本页aspx网址:/soft.aspx?id=21612&bianhao=20231231_061731_808747&kind1=05图形图像&kind2=图像处理

        上一篇:Image Mender(图片去水印软件)

        下一篇:鸿合电子白板去水印补丁

        增加   


        相关评论        新窗口打开查看评论