#include

void CshowpicDlg::OnBnClickedButton3()

{

// TODO: 在此添加控件通知处理程序代码

height=width=widthBytes=0;

m_screen.SetWindowPos(&CWnd::wndBottom,0,0,720,576, SWP_NOMOVE | SWP_SHOWWINDOW);

UpdateWindow();

main_window_handle = m_screen.GetSafeHwnd();

if(DD_OK!=(DirectDrawCreateEx(NULL, (void **)&lpdd7, IID_IDirectDraw7, NULL)))

{

return ;

}

// set the cooperative level for full-screen mode

if(DD_OK != lpdd7->SetCooperativeLevel(AfxGetMainWnd()->GetSafeHwnd(), DDSCL_NORMAL))

{

return ;

}

/*设置控制级时,如果应用程序请求了 DDSCL_NORMAL 模式(表明应用程序以普通窗口的形式运行),则不需要提供一个指定窗口的句柄.给窗口句柄参数为 NULL, 所有的窗口都可以被设置为普通的控制级. */

// set the display mode to 640x480x256

// clear ddsd and set size

memset(&ddsd,0,sizeof(ddsd));

ddsd.dwSize = sizeof(ddsd);

// enable valid fields

ddsd.dwFlags=DDSD_CAPS;

ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

// create the primary surface

if(DD_OK!=(lpdd7->CreateSurface(&ddsd, &lpddsprimary, NULL)))

{

return ;

}

// 创建裁剪器

if (FAILED(lpdd7->CreateClipper(0, &lpDDClipper, NULL)))

return ;

// 与窗口工作区关联

if (FAILED(lpDDClipper->SetHWnd(0, main_window_handle)))

{

lpDDClipper->Release();

return ;

}

if (FAILED(lpddsprimary->SetClipper(lpDDClipper)))

{

lpDDClipper->Release();

return ;

}

//

memset(&ddsd,0,sizeof(ddsd));

ddsd.dwSize = sizeof(ddsd);

DDPIXELFORMAT camdispPixelFormat = {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','U','Y','2'), 0,0,0,0,0};

ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;

ddsd.dwWidth = 720;

ddsd.dwHeight = 576;

ddsd.dwBackBufferCount = 0;

ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY;

ddsd.ddpfPixelFormat = camdispPixelFormat;

//

if(DD_OK!=(lpdd7->CreateSurface(&ddsd, &lpddsmypage[0], NULL)))

{

return ;

}

POINT p;

p.x = 0; p.y = 0;

m_screen.ClientToScreen(&p);//获取屏幕顶点

// m_screen.GetClientRect(&rcRectDest);

rcRectDest.left = 0;  rcRectDest.top=0;  rcRectDest.right = 720;  rcRectDest.bottom = 576;

OffsetRect(&rcRectDest, p.x, p.y);//把窗口区域转化为屏幕区域坐标

SetRect(&rcRectSrc, 0, 0, 720, 576);//初始化窗口区域

/

FILE *fp;

fp = fopen("D:\\6089.DAT","rb+");

buf[0] = new BYTE[720*2*576];

for (int i=0;i<200;i++)

{

if(DD_OK != lpddsmypage[0]->Lock(NULL,&ddsd,DDLOCK_WAIT|DDLOCK_SURFACEMEMORYPTR,NULL))

{

return ;

}

UCHAR  *bmp_buffer = (UCHAR *)ddsd.lpSurface;

///提取数据/

fread(buf[0],720*2*576,1,fp);

for (int k=0;k<576;k++)

{

memcpy(bmp_buffer+k*ddsd.lPitch,buf[0]+k*720*2,720*2);

}

Sleep(40);

//

//memcpy(bmp_buffer,buf[0],720*576*2);

if(DD_OK != lpddsmypage[0]->Unlock(NULL))

{

return ;

}

if(DD_OK != lpddsprimary->Blt( &rcRectDest, lpddsmypage[0], &rcRectSrc, DDBLT_WAIT, NULL))

{

return ;

}

}

fclose(fp);

if(lpddsmypage)

{

lpddsmypage[0]->Release();

lpddsmypage[0]=NULL;

}

MessageBox(_T("over"));

}

yuv422 java_directdraw显示yuv422(yuy2)相关推荐

  1. 完成一个YUV文件播放器

    前面匆忙写了很多篇文章,虽然都很简单,但着实花了不少时间去研究的.几年前写了YUV转换RGB的代码,当时只限于转换成BMP来测试正确性.后来一直使用YUV Player Deluxe来看YUV文件,但 ...

  2. yuv420p 详解_图文详解YUV420数据格式

    YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...

  3. 【ARM-Linux开发】【DSP开发】AM5728介绍

    AM5728 Sitara Processors 1.    介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...

  4. 文章标题ffmpeg文档37-视频滤镜

    ffmpeg文档37-视频滤镜 37 视频滤镜 在配置编译FFmpeg时可以通过--disable-filters来禁止所有滤镜的编译.也可以配置编译脚本来输出所有包含进编译的滤镜信息. 下面是当前可 ...

  5. ffmpeg-python库的使用翻译(三)

    接上篇 ffmpeg-python库的使用翻译(二) 原文地址:https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filte ...

  6. 海思3559开发常识储备:相关名词全解

    前言   接连啃了两个sample,还是觉得笼笼统统模模糊糊,没有达到想要的一目了然的程度,那就再整理整理资料,补些硬货吧 图像和像素格式 颜色: (1)颜色是主观还是客观存在?    颜色的本质是光 ...

  7. MIPI信号简单介绍

    1.MIPI介绍 MIPI是由ARM.Nokia.ST.IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计. MIPI联盟通过不同的工 ...

  8. 【第二季】图像像素格式RGB和YUV的理解

    目录 图像像素格式理解 RGB与YUV 图像像素格式理解 1.颜色的学问 (1)颜色是主观还是客观存在?颜色的本质是光的波长,但是因为有人去看才有了颜色这个概念,所以本质上来说,颜色是主观存在的. ( ...

  9. RV1126与RV1109 AI系统设计概要(一部分)

    RV1109与RV1126参数 主要区别 RV1126处理器(例子) 四核核 Cortex-A7,ARM架构V7-A指令,独立Neon SIMD(一种高级单指令多数据扩展指令集,可执行并行数据处理), ...

最新文章

  1. 驳“中国的网页设计为什么这么烂?”
  2. R语言绘制简单行程图
  3. DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略
  4. java高分面试指南:java定时删除文件
  5. Centos7-卸载自带的jdk 安装jdk8
  6. [css] 如何写高效的CSS?
  7. Map-Reduce的逻辑过程
  8. LintCode: Search A 2d Matrix
  9. linux 串口格式化输出字符串,如何把电压这个浮点值转字符串输出到串口
  10. html6与html5的区别,XHTML和HTML5的区别
  11. lodop直接打印怎么去除水印_手机视频有水印怎么办?一招教你轻松去除,不学真是可惜了...
  12. 看了这份《算法中文手册》笔记,就再也不怕字节了~
  13. HTML DOM nodeName nodeValue
  14. WinAppDriver UI自动化测试环境搭建
  15. xpraid安装_在Win2003/XP安装光盘中集成RAID驱动 不用软驱装RAID/SATA/SAS驱动
  16. 【视频直播篇七】Aliplayer的使用
  17. 作为第三代互联网,Web3 的理念还未被真正阐述
  18. swiper 插件里面嵌套可滚动内容
  19. 小米平板2刷哪个系统更流畅_两个系统随你选 小米平板2刷机小教程
  20. 解决调用接口时的OPTIONS请求

热门文章

  1. 排序算法竟能如此美丽?排序算法可视化大全!
  2. python爬取动态网页_python爬取动态网页数据,详解
  3. Redis分布式锁Redisson
  4. php 密码正则表达式,验证用户设置的密码强度正则表达式
  5. vue scoped 原理解析
  6. Java版开源工作流Jflow从表数据数据源导入设置
  7. 进程和线程:进程的实现
  8. 用java写一个猜拳小游戏
  9. mysql 正则 匹配_MySQL正则表达式匹配
  10. Composer中的Tilde和插入符号版本限制