zoukankan      html  css  js  c++  java
  • 【笨嘴拙舌WINDOWS】GDI对象之位图

    GDI对象在windows中可以描述成为一次绘画操作时可使用的抽象工具。包括(画笔、画刷、字体、区域、调色板、位图等)

    GDI对象里的对象概念和在编程领域中面向对象编程的对象概念是不一样的!

    GDI对象更多的偏重于是一个实体,而编程中的对象是一个能提供各种服务抽象概念。

    在Windows中可以通过如下方式查看一个进程所拥有的GDI对象总数

    1.打开任务管理器。

    2.点击查看——选择列

              image

    3.选中“GDI对象”

              image

    然后再任务管理器中就能够查看了

             image

    在Windows中这种Gdi位图就叫做DDB(Device-Dependent Bitmap)设备相关图

    在Windows中还有一个名字  叫做DIB(Device-Independent Bitmap)设备无关图,这个其实不是图,而是一种windows文件格式。

    可以通过如下方式来创建GDI位图

    1.HBITMAP hb= CreateBitmap(cx,              宽的像素个数

                                                cy,              高的像素个数

                                                cPlanes,     调色板数目,一般是1

                                                cBitsPixel,   每个像素使用多少个位来表示

                                                bits)           指向一位位数组的指针

    2.HBITMAP hb= CreateCompatibleBitmap(hdc,cx,cy);

    3.HBITMAP hb= CreateBitmapIndirect(&bitmap);

       bitmap的结构为

                     bmtype   0

                     bmwidth  像素宽度

                     bmheight 像素高度

                     bmwidthBytes   每个扫描线的字节数,必须能被2整除,因为windows   会假设位图都是字对齐的。字对齐是一个非常重要的特性,我将再以后高级部分讲解

                     bmplanes 调色板数目,一般是1

                     bmBitsPixel   每个像素使用多少个位来表示

                     bmBits   指向一个位数组的指针(从上到下绘图,也就是说图像的第一个扫描行对应数组的前面几个位,最后一个扫描行对应数组的最后几位)

    要使用GDI位图,也是用其他GDI对象一样,都是需要将位图选进到设备描述表,但是是用与位图选择的设备描述表是通过CreateCompatibleDc(hdc)所创建的内存设备描述表。

  • 相关阅读:
    scss的初级学习随笔小计
    trimpash实现jd选项卡首次输入
    透明度动画
    js原生动画一匀速动画
    filter滤镜的使用
    scss实现不同方向的三角
    模板方法模式-考题抄错,会做也白搭
    设计模式概述
    mysql数据库
    夜饮东坡醒复醉
  • 原文地址:https://www.cnblogs.com/pavkoo/p/3336615.html
Copyright © 2011-2022 走看看