图形图像显示研究(一)

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

作者:朱金灿

来源: blog.csdn.net/clever101

<!-- [if !supportLists]-->一. <!-- [endif]-->前言

最近因为工作需要,也因为自己的兴趣,决心好好研究一下图形图像的显示。图形图像显示,既可以说是一个古老的研究课题,也可以说是一个年轻的课题。说它老,或许它可以和计算机的历史一样长。说它年轻,和很多老课题一样,随着多线程、 GPU 等新技术的诞生又焕发了新的面貌。

闲话少说,言归正传。在这次研究中,我初步计划是:首先研究大图像的快速显示,包括在 GDIGDI+OpenGL 环境下漫游、放大、缩小和拖动等等以及效率测试、双缓冲绘图等等;其次是大图像的金字塔算法;三是矢量图形的快速显示;四是新技术在图形图像显示方面的应用,具体方法是下载资料和源码,看资料和源码。

<!-- [if !supportLists]-->二. <!-- [endif]-->简单的位图显示

事实上进行简单的位图显示是一件很简单的事情。只需要在视图类的 OnDraw 函数加入下面的代码:

void CShowBmpView::OnDraw(CDC* pDC) { CShowBmpDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here if(m_AllowShowBmp) //假如允许显示bmp图片 { CBitmap bitmap; //定义一个位图类变量 /*从文件中装入位图*/ HBITMAP chbitmap = (HBITMAP)LoadImage( NULL, //如果从资源加载,则指明包含位图资源的程序实例句柄 m_FilePath,//位图文件路径(含文件名) IMAGE_BITMAP,//加载的图像类型为位图 0,0, //宽度和高度,0表示使用默认值 LR_LOADFROMFILE); //加载标志,表明从文件加载 bitmap.Attach(chbitmap); /*创建一个兼容DC*/ CDC dcComp; dcComp.CreateCompatibleDC(pDC); /*将位图选入兼容DC中*/ dcComp.SelectObject(&bitmap); BITMAP bminfo; //定义位图信息结构体变量 bitmap.GetObject(sizeof(bminfo),&bminfo);//取得位图信息 pDC->BitBlt( 0,0, //显示位置 bminfo.bmWidth,bminfo.bmHeight,//显示位图的宽度和高度 &dcComp, //位图所在的兼容DC 0,0, //兼容DC中的位置 SRCCOPY); //显示方式,表示直接复制 } }

未完待续!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值