图形图像显示研究(一)

作者:朱金灿

来源:www.cnblogs.com/clever101

 

一.前言

 

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

 

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

 

 

二.简单的位图显示

 

事实上进行简单的位图显示是一件很简单的事情。只需要在视图类的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);  //显示方式,表示直接复制
    }
}
复制代码


未完待续!




posted @   是金子就会灿烂  阅读(337)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示