• windows程序设计笔记(9)


    位图和BitBlt
    1.位块传送BitBlt(bit-block transfer读作"bit blit"),函数实际上对像素执行了一次位运算操作
    BitBlt(hdcDest,xDst,yDst,cx,cy,hdcSrc,xSrc,ySrc,dwROP)  //源设备描述表中将一个矩形区的像素传送到目标的另一个设备描述表中相同大小的矩形区.
    StretchBlt(hdcDst,xDst,yDst,cxDst,cyDst,hdcSrc,xSrc,yrc,cxSrc,cySrc,dwROP),SetStretchBltMode(hdc,iMode) //拉伸或压缩使用
    PatBlt(hdc,x,y,cx,cy,dwROP)

    光栅操作常用的:
    SRCCOPY 目的=源
    PATCOPY 忽略源和目的,复制图案
    NOTSRCCOPY 源取反色

    2.GDI位图对象
    DDB的创建HBITMAP = CreateBitmap(cx,cy,cPlanes,cBitsPixel,bits)
    1)单色位图的创建 cPlanes=1 cBitsPixel=1
    2)特定设备描述表的值 使用CreateCompatibleBitmap(hdc,cx,cy) //创建与设备描述表句柄兼容的位图对象
    3)CreateBitmapIndirect(BITMAP*)

    3.内存设备描述表
    hdcMem = CreateCompatibleDC(hdc)//hdc为实际设备的描述表句柄 使用完之后要DeleteDC 初始时为单色,1像素高和宽
    SelectObject(hdcMem, hBitmap)  //选人一个GDI位图对象

    4.非矩形位图图像
    使用掩码技术

    与设备无关的位图(DIB)
    dib文件结构:文件头,信息头,色彩表(不一定有),位图像素位
    紧缩dib内存结构:信息头,色彩表(不一定有),位图像素位
    BITMAPFILEHEADER, BITMAPCOREHEADER, RGBTRIPLE

  • 相关阅读:
    maven+spark2.0.0最大连通分量
    Eclipse+maven+scala2.11.8+spark2.0.0的环境部署
    杀死mapreduce
    filter-自己的理解
    JS变量声明提升
    js==运算符强制转换规则
    html 文字间距
    如你所见,我开始用微博
    vue数据模拟
    vue项目目录介绍
  • 原文地址:https://www.cnblogs.com/neking/p/2554402.html
Copyright © 2020-2023  润新知