根据MFC要操作图片的来源,可分为以下两类:

  一、非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)

  二、动态载入图片(即只需要在程序中指定图片的路径即可载入)


一、非动态显示图片

  1.传送位图函数

    CDC memDC;
memDC.CreateCompatibleDC(pDC); CBitmap NewBitmap, * pOldBitmap;
NewBitmap.LoadBitmap(IDB_BITMAP1);//从资源中导入位图
BITMAP bmpInfo;//声明BITMAP结构体
NewBitmap.GetBitmap(&bmpInfo);//获取位图信息
pOldBitmap = memDC.SelectObject(&NewBitmap);//将位图选入内存DC pDC->BitBlt(0, 0, 0, 0, &memDC, 0, 0, SRCCOPY);//将内存DC中的位图复制到设备DC

  2.创建位图画刷

   CBitmap NewBitmap;
   NewBitmap.LoadBitmap(IDB_BITMAP1);
   CBrush NewBrush, *pOldBrush;
   NewBrush.CreatePatternBrush(&NewBitmap);
   pOldBrush = pDC->SelectObject(&NewBrush);
   pDC->FillRect(CRect(0,0, nScrHalfWidth * 2, nScrHalfHeight * 2), &NewBrush);
   pDC->SelectObject(pOldBrush);

二、动态载入图片

  1.CImage

    CImage 支持的图片格式有很多,像通常用的jpg,png,bmp,gif等。

   HDC hDC;
   hDC = pDC->GetSafeHdc();
   CImage img;
   img.Load(L"res/texture.bmp");
   img.Draw(hDC, 0, 0, 100, 100);

  


补充:

  GDI(图形设备接口(Graphics Device Interface)) 主要任务是负责系统与绘图程序之间的信息交换。在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI。GDI的出现使程序员无需要关心硬件设备及设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

  GDI绘图工具的基类,一般不能直接使用。其中CBitmap、CBrush、CFont、CPalette、CPen、CRgn等。

  在使用GDI对象进行绘图时,需要遵循一下步骤:

   (1)绘图开始前,创建一个新的GDI对象,并选入当前设备上下文,同时保存原GDI对象指针。

   (2)使用新GDI对象绘图。

   (3)绘图结束后,使用已保存的原GDI对象指针将设备上下文回复原状。

  希望本文章能够帮助到您。如果文章中有错误或不足之处,希望您可以在评论区纠正,方便大家交流学习。

[1]孔令德. 计算机图形学基础教程.清华大学出版社,2008.

MFC图片操作的更多相关文章

  1. ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave由于鼠标移动速度过快导致问题解决办法

    记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部 ...

  2. 【php学习】图片操作

    前两天要对一张图片进行处理,其实很简单,就是在图片上加上字符串,一个图片而已,但是自己如同得了短暂性失忆似的,图片操作的函数一个都想不起来.所以就抽空整理了一下图片操作函数. 图片处理三步走: 创建画 ...

  3. Android应用程序开发之图片操作(一)——Bitmap,surfaceview,imageview,Canvas

    Android应用程序开发之图片操作(一)——Bitmap,surfaceview,imageview,Canvas   1,Bitmap对象的获取 首先说一下Bitmap,Bitmap是Androi ...

  4. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  5. .NET Core 图片操作在 Linux/Docker 下的坑

    一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...

  6. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  7. 盒子总结,文本属性操作,reset操作,高级选择器,高级选择器优先级,边界圆角(了解),a标签的四大伪类,背景图片操作,背景图片之精灵图

    盒子总结 ''' block: 设置宽高 1.没有设置宽,宽自适应父级的宽(子级的border+padding+width=父级的width) 2.没有设置高,高由内容撑开 设置了宽高 一定采用设置的 ...

  8. JavaScript之图片操作7

    前面总结了很多了有关于图片操作的案例,本次是基于前面的基础,做一个综合的图片轮播效果,需要实现以下功能: 没有任何操作时,图片自动轮播 鼠标悬浮时,图片停止轮播:当鼠标移开,轮播继续 鼠标悬浮时,出现 ...

  9. JavaScript之图片操作5

    本次的图片操作是要实现模仿天猫淘宝的放大镜效果,如下图所示: 其实现原理其实很简单,主要就是定位的运用,在上面的图中,左边是一个div,它的大小就是左边图片的大小,我们称为左窗口(原图),红色部分我们 ...

随机推荐

  1. linux系统ssh免密钥登录配置

    linux主机配置ssh免密钥登录,具体配置如下: 1.执行命令ssh-keygen -t rsa,生成公钥和私钥(具体步骤详见下图) 2.会在当前用户的家目录的.ssh/生成公钥和私钥, 3.执行s ...

  2. python之字典及其方法---整理集

    字典 特点: 使用逗号分隔的key:value形式: 使用大括号括起来: key-value的键值对中,value部分可以是任意类型: 列表.字典不能做为字典的key: 字典是无序的,哪个key-va ...

  3. JSP(介绍,语法,指令)

    什么是JSP JSP全名为Java Server Pages,java服务器页面.JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在! JSP的工作原理 其实JSP在第一次被访问的时 ...

  4. 15. 3Sum (JAVA)

    Given an array nums of n integers, are there elements a, b, cin nums such that a + b + c = 0? Find a ...

  5. hbase基础建表语句

    在Hadoop目录下的HBASE下执行命令 ./hbase shell 进入hbase环境 创建hbase 数据库表 create "表名", "字段A",&q ...

  6. 企业BGP网络规划案例(三)

    路由选路 1.分支的办公流和生产流默认走联通MSTP线路,DC流默认走电信MSTP线路,当其中某条互联的链路down后才会进行流量切换 XRV1配置 ========================= ...

  7. Java往指定地址接口发送内容方法

    package com.upload.tool; import java.io.BufferedReader;import java.io.InputStreamReader;import java. ...

  8. java_32 SQLyog中创建数据库表

    USE test; /*1.创建账务表 id name mony*/ CREATE TABLE zhangwu(id INT PRIMARY KEY AUTO_INCREMENT, sname VAR ...

  9. netcore发布到 iis 设置 部署 环境 变量

    原文链接:https://www.cnblogs.com/Ambre/p/9646445.html 打开IIS,选择本机,找到管理-配置编辑器 1:打开IIS,选择本机,找到管理-配置编辑器 2.节选 ...

  10. VBA 生成XML(转)

    需要引用连个库,Microsoft ADO Ext. 6.0 for DDL and Security, Miscrosoft  ActiveX Data Objects 2.7 Library . ...